pingpong/twitter

适用于 Laravel 的 Twitter OAuth

v2.1.0 2015-10-09 09:45 UTC

README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License HHVM Status

服务器要求

Require PHP 5.4+ or higher.

安装

对于 Laravel 4.*,请使用版本 1.*

打开您的 composer.json 文件,并添加新要求的包。

  "pingpong/twitter": "~2" 

接下来,打开终端并运行。

  composer update 

在 composer 更新后。在 app/config/app.php 中添加新的服务提供者。

	'Pingpong\Twitter\TwitterServiceProvider'

接下来,添加新的别名。

    'Twitter'           => 'Pingpong\Twitter\Facades\Twitter',

接下来,打开终端并运行。

  php artisan vendor:publish --provider="Pingpong\Twitter\TwitterServiceProvider" 

完成。

配置文件

return array(
	'consumer_key'		=>	'',
	'consumer_secret'	=>  '',
	
	'oauth_token'		=>	null,
	'oauth_token_secret'=>  null,

	'bearer_token'		=>	null,
	
	'callback_url'		=>  url('twitter/callback'),
    'fallback_url'      =>  url('/')
);

用法

授权用户。

Twitter::authorize();

认证用户。

Twitter::authenticate();

您还可以在授权或认证用户时覆盖回调 URL。

$callbackUrl = url('twitter/getcallback');

Twitter::authorize($callbackUrl);

Twitter::authenticate($callbackUrl);

获取授权或认证用户后的回调。

Twitter::getCallback();

// or using `callback` method

Twitter::callback();

获取账户验证凭据。

Twitter::getAccountVerifyCredentials();

// you can also specify what parameters want you use

$parameters = array();

Twitter::getAccountVerifyCredentials($parameters);

// or using `getCredentials` method

Twitter::getCredentials($parameters);

全局 API 调用。

Twitter::api($method, $path, $parameters, $multipart, $appOnlyAuth);

Twitter::api('GET', '/path');

Twitter::api('POST', '/path', $parameters);

Twitter::api('PUT', '/path', $parameters);

Twitter::api('PATCH', '/path', $parameters);

Twitter::api('DELETE', '/path/to', $parameters);

调用 Twitter API 的辅助方法。

GET 请求

Twitter::get('/path', $parameters);

POST 请求

Twitter::post('/path', $parameters);

PUT 请求

Twitter::put('/path', $parameters);

PATCH 请求

Twitter::patch('/me', $parameters);

DELETE 请求

Twitter::delete('/me', $parameters);

设置返回格式。

Twitter::format('json');

Twitter::format('array');

Twitter::format('object');

启用和禁用 curl。

Twitter::enableCurl();

Twitter::disableCurl();

设置连接和请求超时。

Twitter::setConnectionTimeout(2000);

Twitter::setTimeout(500);

允许消费者应用程序使用 xAuth 交换 OAuth 请求令牌为 OAuth 访问令牌。

Twitter::xAuth($username, $password);

设置令牌。

Twitter::setToken($oauthToken, $oauthTokenSecret);

获取 bearer 令牌。

$token = Twitter::getBearerToken();

设置 bearer 令牌。

Twitter::setBearerToken($token);

示例

认证用户。

Route::get('twitter/authenticate', function()
{
    return Twitter::authenticate();
});

授权用户。

Route::get('twitter/authorize', function()
{
    return Twitter::authorize();
});

获取 Twitter 回调。

Route::get('twitter/callback', function()
{
    try
    {
        $callback = Twitter::getCallback();
        
        dd($callback);
    }
    catch(Pingpong\Twitter\Exceptions\TwitterApiException $e)
    {
        var_dump($e->getMessage());
        var_dump($e->getResponse());
    }
});

注销用户。

Route::get('twitter/logout', function()
{
    Twitter::logout();
    
    return Redirect::home();
});

发布推文。

Route::get('twitter/tweet', function()
{
    try
    {
        $status = 'Hello world!';
        
        $response = Twitter::tweet($status);
        
        dd($response);
    }
    catch(Pingpong\Twitter\Exceptions\TwitterApiException $e)
    {
        var_dump($e->getMessage());
        var_dump($e->getResponse());
    }
});

上传媒体。

Route::get('twitter/upload', function()
{
    try
    {
        $status = 'Hello world!';
        $media  = '/path/to/your-media.ext';
        
        $response = Twitter::upload($status, $media);
        
        dd($response);
    }
    catch(Pingpong\Twitter\Exceptions\TwitterApiException $e)
    {
        var_dump($e->getMessage());
        var_dump($e->getResponse());
    }
});

REST API v1.1 资源

时间线

时间线是一组推文集合,按时间顺序排列,最近的推文排在前面。

GET statuses/mentions_timeline

返回认证用户最近的 20 条提及(包含用户 @screen_name 的推文)。

Twitter::getStatusesMentionsTimeline($parameters, $multipart, $appOnlyAuth);
GET statuses/user_timeline

返回指定用户(通过 screen_name 或 user_id 参数)发布的最新推文集合。

Twitter::getStatusesUserTimeline($parameters, $multipart, $appOnlyAuth);
GET statuses/home_timeline

返回认证用户及其关注的用户最近发布的推文和转推文的集合。

Twitter::getStatusesHomeTimeline($parameters, $multipart, $appOnlyAuth);
GET statuses/retweet_of_me

返回认证用户最近发布的、被他人转推的推文。

Twitter::getStatusesRetweetsOfMe($parameters, $multipart, $appOnlyAuth);

推文

推文是 Twitter 的原子构建块,是包含附加元数据的 140 个字符的状态更新。

GET statuses/retweets/:id

返回指定 id 参数的推文最近的 100 条转推文。

Twitter::getStatusesRetweets($id, $parameters, $multipart, $appOnlyAuth);
GET statuses/show/:id

返回指定 id 参数的单个推文。

Twitter::getStatusesShow($id, $parameters, $multipart, $appOnlyAuth);
POST statuses/destroy/:id

销毁由所需 ID 参数指定的状态。

Twitter::postStatusesDestroy($id, $parameters, $multipart, $appOnlyAuth);
POST statuses/update

更新认证用户的当前状态,也称为推文。

Twitter::postStatusesUpdate($parameters, $multipart, $appOnlyAuth);
POST statuses/retweet/:id

转推一条推文。

Twitter::postStatusesRetweet($id, $parameters, $multipart, $appOnlyAuth);
POST statuses/update_with_media

更新认证用户的当前状态并附加上传媒体。

Twitter::postStatusesUpdateWithMedia($parameters, $appOnlyAuth);
GET statuses/oembed

返回允许在第三方网站上创建推文嵌入表示的信息。

Twitter::getStatusesOembed($parameters, $multipart, $appOnlyAuth);
GET statuses/retweeters/ids

返回最多 100 个用户 ID 的集合,这些 ID 属于已转推指定 id 参数的推文的用户。

Twitter::getStatusesRetweetersIds($parameters, $multipart, $appOnlyAuth);

搜索

根据用户执行的查询查找相关的推文。

GET search/tweets

返回与指定查询匹配的相关推文集合。

Twitter::getSearchTweets($parameters, $multipart, $appOnlyAuth);
直接消息

直接消息是两个用户之间发送的简短、非公开消息。

Twitter::getSearchTweets($parameters, $multipart, $appOnlyAuth);
GET direct_messages

返回发送给认证用户最近的 20 条直接消息。

Twitter::getDirectMessages($parameters, $multipart, $appOnlyAuth);
GET direct_messages/sent

返回认证用户发送的最近的 20 条直接消息。

Twitter::getDirectMessagesSent($parameters, $multipart, $appOnlyAuth);
GET direct_messages/show

返回指定 id 参数的单条直接消息。

Twitter::getDirectMessagesShow($parameters, $multipart, $appOnlyAuth);
POST direct_messages/destroy

销毁在所需 ID 参数中指定的直接消息。

Twitter::postDirectMessagesDestroy($parameters, $multipart, $appOnlyAuth);
POST direct_messages/new

从认证用户向指定用户发送一条新的直接消息。

Twitter::postDirectMessagesNew($parameters, $multipart, $appOnlyAuth);

收藏

用户收藏推文以认可精彩的推文,整理Twitter的精华,保存以备后读,以及其他各种原因。同样,开发者以多种方式使用“收藏”功能。

GET favorites/list

返回认证用户或指定用户最近20次收藏的推文。

Twitter::getFavoritesList($parameters, $multipart, $appOnlyAuth);
POST favorites/destroy

取消收藏ID参数中指定的状态,作为认证用户。

Twitter::postFavoritesDestroy($parameters, $multipart, $appOnlyAuth);
POST favorites/create

将ID参数中指定的状态收藏为认证用户。

Twitter::postFavoritesCreate($parameters, $multipart, $appOnlyAuth);

注意:并非所有功能和外观API均有文档记录

许可

本软件包是开源软件,许可协议为BSD 3-Clause 许可协议