简化版/twitter

带OAuth的Twitter API库

0.2.4 2016-03-14 10:10 UTC

This package is auto-updated.

Last update: 2024-09-20 23:58:07 UTC


README

                       :                      :
                       ::                    ::
                       ::`.     .-""-.     .'::
                       : `.`-._ : '>': _.-'.' :
                       :`. `=._`'.  .''_.=' .':
                        : `=._ `- '' -' _.-'.:
                         :`=._`=.    .='_.=':
                          `.._`.      .'_..'                
                            `-.:      :.-'
                               :      :
                               `:.__.:'
                                :    :
                               -'=  -'=                                           

                           Simplon/Twitter

简介

什么是简化版/twitter?

这是一个库,可以帮助您与Twitter的API进行通信。特别是它将允许您生成访问令牌以及发布和与推文交互。

有依赖项吗?

  • PHP 5.4
  • CURL

安装

通过composer轻松安装。还不知道composer是什么?请在此处了解更多信息

{
    "require": {
        "simplon/twitter": "*"
    }
}

要求

为了与Twitter的API交互,您需要注册您的应用程序以接收一个消费者密钥和一个消费者密钥。在Twitter的应用程序管理中注册您的应用程序

最终,您应该会收到类似以下示例的内容

消费者密钥(apiKey): E3yaXX2LvOFXXXXikwMUyvlQD
消费者密钥(apiSecret): WkhXXZPbyFdLiHqDCkSEqJodxm5XdIPLuFNzs1sXXdv09ZXXX7

请求访问令牌

以下行将描述如何生成一对访问令牌,这对于与Twitter的API通信是必需的。如果发生错误,将抛出TwitterException

1. OAuth请求令牌

只需遵循以下代码。您应该会收到一个包含OauthToken等内容的类(OauthRequestTokenVo)。通过传递提到的令牌调用Twitter::getAuthenticationUrl()。结果,您将收到一个URL - 将用户重定向到此URL。用户将最终到达Twitter的认证页面,并授予您访问其个人资料的权限。

require __DIR__ . '/vendor/autoload.php';

// your app's consumer tokens
$apiKey = 'E3yaXX2LvOFXXXXikwMUyvlQD';
$apiSecret = 'WkhXXZPbyFdLiHqDCkSEqJodxm5XdIPLuFNzs1sXXdv09ZXXX7';

// where should twitter redirect the user?
$callbackUrl = 'https://yourdomain.com/twitter';

// twitter session with your credentials
$twitter = new \Simplon\Twitter\Twitter($apiKey, $apiSecret);

try
{
    $oauthRequestTokenVo = $twitter->requestOauthRequestToken($callbackUrl);

    echo "Twitter redirect url:\n";
    echo $twitter->getAuthenticationUrl($oauthRequestTokenVo->getOauthToken());
    echo "\n\n";
}
catch (\Simplon\Twitter\TwitterException $e)
{
    var_dump($e->getMessage());
}

2. OAuth访问令牌

当用户授予您权限后,Twitter将重定向到您先前定义的回调URL,并附加两个类似以下示例的GET参数:?oauth_token=AuNV9QXXXXXXelElAAABT0C1Sw4&oauth_verifier=UpVzmg0tiNXXXwuddcmIxgIb5PVuSn

您需要这两个参数来接收用户的个人资料数据访问令牌,以便与他的/她的Twitter账户交互。接收到的数据将以OauthAccessTokenVo类形式返回。

您需要两个访问令牌:请确保保存所有数据以供以后使用。例如,存储在数据库中。

require __DIR__ . '/vendor/autoload.php';

// your app's consumer tokens
$apiKey = 'E3yaXX2LvOFXXXXikwMUyvlQD';
$apiSecret = 'WkhXXZPbyFdLiHqDCkSEqJodxm5XdIPLuFNzs1sXXdv09ZXXX7';

// retrieved params
$oauthToken = 'AuNV9QXXXXXXelElAAABT0C1Sw4';
$oauthVerifier = 'UpVzmg0tiNXXXwuddcmIxgIb5PVuSn';

// twitter session with your credentials
$twitter = new \Simplon\Twitter\Twitter($apiKey, $apiSecret);

try
{
	// retrieve access tokens and profile data from user
	$oauthAccessTokenVo = $twitter->requestOauthAccessToken($oauthToken, $oauthVerifier);
	
	var_dump($oauthAccessTokenVo);
   
   // var_dump result would look something like this:
    
    // class Simplon\Twitter\OauthAccessTokenVo#4 (5) {
	// protected $oauthToken =>
	// string(50) "3197060333-xxxx4chX0Sega3iMF0r55PP96BAGyXXXFTwjpgW"
	// protected $oauthTokenSecret =>
	// string(45) "FeIpfZ1qK4jTaKXXXXTaQAlfny0dFgBV4K15vbnFd3XX"
	// protected $userId =>
	// string(10) "1234567899"
	// protected $screenName =>
	// string(12) "foobar user"
	// protected $xAuthExpires =>
	// string(1) "0"
	// }
}
catch (\Simplon\Twitter\TwitterException $e)
{
    var_dump($e->getMessage());
}

这就是全部内容。您可以尝试与Twitter的API进行交互。

与Twitter的API交互

以下示例将向您展示如何发布、读取和销毁推文。请访问Twitter的开发中心以查看所有API资源。

简化版/Twitter现在也支持媒体上传。一个示例可以在其他示例的末尾找到。

1. 发布一条推文

require __DIR__ . '/vendor/autoload.php';

// your app's consumer tokens
$apiKey = 'E3yaXX2LvOFXXXXikwMUyvlQD';
$apiSecret = 'WkhXXZPbyFdLiHqDCkSEqJodxm5XdIPLuFNzs1sXXdv09ZXXX7';

// user's prior retrieved access tokens
$accessToken = '3197060333-xxxx4chX0Sega3iMF0r55PP96BAGyXXXFTwjpgW';
$accessSecret = 'FeIpfZ1qK4jTaKXXXXTaQAlfny0dFgBV4K15vbnFd3XX';

// twitter session with your credentials
$twitter = new \Simplon\Twitter\Twitter($apiKey, $apiSecret);

try
{
	// bind user account to twitter session
	$twitter->setOauthTokens($accessToken, $accessSecret);
	
	// publish tweet
	$response = $twitter->post('statuses/update', ['status' => 'My first tweet!']);
	
	// should hold all tweet specific data in an array
	var_dump($response); // $response['id'] holds the tweet ID
}
catch (\Simplon\Twitter\TwitterException $e)
{
    var_dump($e->getMessage());
}

2. 读取一条推文

您需要一个推文ID才能加载其数据。

require __DIR__ . '/vendor/autoload.php';

// your app's consumer tokens
$apiKey = 'E3yaXX2LvOFXXXXikwMUyvlQD';
$apiSecret = 'WkhXXZPbyFdLiHqDCkSEqJodxm5XdIPLuFNzs1sXXdv09ZXXX7';

// user's prior retrieved access tokens
$accessToken = '3197060333-xxxx4chX0Sega3iMF0r55PP96BAGyXXXFTwjpgW';
$accessSecret = 'FeIpfZ1qK4jTaKXXXXTaQAlfny0dFgBV4K15vbnFd3XX';

// twitter session with your credentials
$twitter = new \Simplon\Twitter\Twitter($apiKey, $apiSecret);

try
{
	// bind user account to twitter session
	$twitter->setOauthTokens($accessToken, $accessSecret);
	
	// load tweet data by ID
	$response = $twitter->get('statuses/show/633611781445959680');
	
	// should hold all tweet specific data in an array
	var_dump($response);
}
catch (\Simplon\Twitter\TwitterException $e)
{
    var_dump($e->getMessage());
}

3. 销毁一条推文

您需要一个推文ID才能销毁它。

require __DIR__ . '/vendor/autoload.php';

// your app's consumer tokens
$apiKey = 'E3yaXX2LvOFXXXXikwMUyvlQD';
$apiSecret = 'WkhXXZPbyFdLiHqDCkSEqJodxm5XdIPLuFNzs1sXXdv09ZXXX7';

// user's prior retrieved access tokens
$accessToken = '3197060333-xxxx4chX0Sega3iMF0r55PP96BAGyXXXFTwjpgW';
$accessSecret = 'FeIpfZ1qK4jTaKXXXXTaQAlfny0dFgBV4K15vbnFd3XX';

// twitter session with your credentials
$twitter = new \Simplon\Twitter\Twitter($apiKey, $apiSecret);

try
{
	// bind user account to twitter session
	$twitter->setOauthTokens($accessToken, $accessSecret);
	
	// destroy tweet by ID
	$response = $twitter->get('statuses/destroy/633611781445959680');
	
	// should hold all tweet specific data in an array
	var_dump($response);
}
catch (\Simplon\Twitter\TwitterException $e)
{
    var_dump($e->getMessage());
}

4. 上传并发布一张图片

require __DIR__ . '/vendor/autoload.php';

// your app's consumer tokens
$apiKey = 'E3yaXX2LvOFXXXXikwMUyvlQD';
$apiSecret = 'WkhXXZPbyFdLiHqDCkSEqJodxm5XdIPLuFNzs1sXXdv09ZXXX7';

// user's prior retrieved access tokens
$accessToken = '3197060333-xxxx4chX0Sega3iMF0r55PP96BAGyXXXFTwjpgW';
$accessSecret = 'FeIpfZ1qK4jTaKXXXXTaQAlfny0dFgBV4K15vbnFd3XX';

// twitter session with your credentials
$twitter = new \Simplon\Twitter\Twitter($apiKey, $apiSecret);

try
{
	// bind user account to twitter session
	$twitter->setOauthTokens($accessToken, $accessSecret);
	
	// upload image
	$response = $twitter->upload('http://example-image.png'); 

	// should hold all media specific data in an array
	var_dump($response); // $response['media_id'] holds the media ID
	
	// publish tweet w/ media
	$response = $twitter->post('statuses/update', ['status' => 'Crazy summer vacation!', 'media_ids' => $response['media_id']);
	
	// should hold all tweet specific data in an array
	var_dump($response); // $response['id'] holds the tweet ID
}
catch (\Simplon\Twitter\TwitterException $e)
{
    var_dump($e->getMessage());
}

许可证

简化版/twitter可以在MIT许可证的条款下自由分发。

版权(c)2015 Tino Ehrich (tino@bigpun.me)

在此特此授予任何获得本软件及其相关文档文件(以下简称“软件”)副本的个人免费使用软件的权利,不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许将软件提供给他人以便他们这样做,但须遵守以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是隐含的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论源于合同、侵权或其他原因,与软件或软件的使用或其他处理有关。