Package Data | |
---|---|
Maintainer Username: | PhiloNL |
Maintainer Contact: | me@philohermans.com (Philo Hermans) |
Package Create Date: | 2013-05-30 |
Package Last Update: | 2015-02-24 |
Home Page: | |
Language: | PHP |
License: | BSD |
Last Refreshed: | 2024-11-20 03:03:02 |
Package Statistics | |
---|---|
Total Downloads: | 17,841 |
Monthly Downloads: | 106 |
Daily Downloads: | 0 |
Total Stars: | 45 |
Total Watchers: | 5 |
Total Forks: | 8 |
Total Open Issues: | 0 |
A simple Laravel 4 service provider for including the TwitterOAuth library.
The TwitterOAuth Service Provider can be installed via Composer by requiring the "philo/laravel-twitter": "dev-master"
package in your project's composer.json.
{
"require": {
"laravel/framework": "4.0.*",
"philo/laravel-twitter": "dev-master"
},
"minimum-stability": "dev"
}
Next you will need to publish the package config:
php artisan config:publish --path=philo/twitter philo/twitter
You can setup your CONSUMER_KEY and CONSUMER_SECRET inside app/config/packages/philo/twitter/config.php
.
<?php
return array(
'CONSUMER_KEY' => '<your-app-key>',
'CONSUMER_SECRET' => '<your-app-secret>'
);
Finaly you need to register the service provider and the alias. Look for providers
inside app/config/app.php register it.
'providers' => array(
// ...
'Philo\Twitter\TwitterServiceProvider',
)
And do the same for the alias:
'aliases' => array(
// ...
'Twitter' => 'Philo\Twitter\Facades\Twitter',
)
In order to access the API you need your user to authorize your application. To do so the user needs to be redirected to 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;
});
Once the user has authorized your app he/she is going to be redirect back to the callback URL you defined in your Twitter application settings. You need to register that route and catch the verifier token:
// 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 will respond with the information that looks like:
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)
You should store this information in order to access the authorized user in the future.
Please look at the source of /vendor/tijsverkoyen/TijsVerkoyen/Twitter/Twitter.php
for all available methods.
Example
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();
}