philo/laravel-twitter
一个简单的 Laravel 4 服务提供程序,用于包含 TwitterOAuth 库。
v1.1
2015-02-24 15:23 UTC
Requires
- php: >=5.3.0
- illuminate/support: 4.x
- tijsverkoyen/twitteroauth: dev-master
This package is auto-updated.
Last update: 2024-09-15 04:05:28 UTC
README
一个简单的 Laravel 4 服务提供程序,用于包含 TwitterOAuth 库。
安装
可以通过在项目中的 composer.json 中要求 "philo/laravel-twitter": "dev-master" 包来通过 Composer 安装 TwitterOAuth 服务提供程序。
{ "require": { "laravel/framework": "4.0.*", "philo/laravel-twitter": "dev-master" }, "minimum-stability": "dev" }
接下来,你需要发布包配置
php artisan config:publish --path=philo/twitter philo/twitter
你可以在 app/config/packages/philo/twitter/config.php
中设置 CONSUMER_KEY 和 CONSUMER_SECRET。
<?php return array( 'CONSUMER_KEY' => '<your-app-key>', 'CONSUMER_SECRET' => '<your-app-secret>' );
最后,你需要注册服务提供程序和别名。在 app/config/app.php 中的 providers
查找并注册它。
'providers' => array( // ... 'Philo\Twitter\TwitterServiceProvider', )
对别名也执行同样的操作
'aliases' => array( // ... 'Twitter' => 'Philo\Twitter\Facades\Twitter', )
用法
为了访问 API,你需要让用户授权你的应用程序。为此,用户需要被重定向到 Twitter。
// Visit http://site.com/twitter-redirect Route::get('twitter-redirect', function(){ // Reqest tokens $tokens = Twitter::oAuthRequestToken(); // Redirect to twitter Twitter::oAuthAuthenticate(array_get($tokens, 'oauth_token')); exit; });
一旦用户授权了你的应用程序,他们就会被重定向回你在 Twitter 应用程序设置中定义的回调 URL。你需要注册该路由并捕获验证令牌
// Redirect back from Twitter to http://site.com/twitter-auth Route::get('/twitter-auth', function(){ // Oauth token $token = Input::get('oauth_token'); // Verifier token $verifier = Input::get('oauth_verifier'); // Request access token $accessToken = Twitter::oAuthAccessToken($token, $verifier); });
Twitter 将响应类似以下的信息
array (size=4)
'oauth_token' => string 'WFkvKyUG6K4-Vqntts8U4xQFzNHgNEAFTFMPxHH6fvQYwYsbuu' (length=50)
'oauth_token_secret' => string 'RfVY4hwV7JeKe9WeQqpMUjLqZvKhZuhKp2wmN3MsKM' (length=43)
'user_id' => string '123456789' (length=8)
'screen_name' => string 'Philo01' (length=7)
你应该存储这些信息,以便将来能够访问授权用户。请参阅 /vendor/tijsverkoyen/TijsVerkoyen/Twitter/Twitter.php
的源代码以了解所有可用方法。
示例
try{ $oAuth = User::find(1); // Get the tokens and twitter user_id you saved in the previous step // Setup OAuth token and secret Twitter::setOAuthToken($oAuth->oauth_token); Twitter::setOAuthTokenSecret($oAuth->oauth_token_secret); // Get tweets $timeline = Twitter::statusesUserTimeline($oAuth->user_id); // Display tweets dd($timeline); } catch(Exception $e) { // Error echo $e->getMessage(); }