philo/laravel-twitter

一个简单的 Laravel 4 服务提供程序,用于包含 TwitterOAuth 库。

v1.1 2015-02-24 15:23 UTC

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_KEYCONSUMER_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();
}