richweber / yii2-twitter
Yii2 extension to the Twitter API
Installs: 23 513
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 5
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-12-13 10:44:44 UTC
README
Twitter Oauth Library
Installation
The preferred way to install this extension is through composer.
Either run
$ php composer.phar require richweber/yii2-twitter "dev-master"
or add
"richweber/yii2-twitter": "dev-master"
to the require
section of your composer.json
file.
Usage
Component Configuration
'components' => [ ... 'twitter' => [ 'class' => 'richweber\twitter\Twitter', 'consumer_key' => 'YOUR_TWITTER_CONSUMER_KEY', 'consumer_secret' => 'YOUR_TWITTER_CONSUMER_SECRET', 'callback' => 'YOUR_TWITTER_CALLBACK_URL', ], ... ],
Authenticate application
<?php namespace app\controllers; use Yii; use yii\web\Controller; use yii\helpers\Url; class SiteController extends Controller { public function actionIndex() { $twitter = Yii::$app->twitter->getTwitter(); $request_token = $twitter->getRequestToken(); //set some session info Yii::$app->session['oauth_token'] = $token = $request_token['oauth_token']; Yii::$app->session['oauth_token_secret'] = $request_token['oauth_token_secret']; if ($twitter->http_code == 200){ //get twitter connect url $url = $twitter->getAuthorizeURL($token); //send them return $this->redirect($url); } else { //error here return $this->redirect(Url::home()); } } } ?>
Callback action
<?php namespace app\controllers; use Yii; use yii\web\Controller; use yii\helpers\Url; class SiteController extends Controller { public function actionTwitterCallBack() { /* If the oauth_token is old redirect to the connect page. */ if (isset($_REQUEST['oauth_token']) && Yii::$app->session['oauth_token'] !== $_REQUEST['oauth_token']) { Yii::$app->session['oauth_status'] = 'oldtoken'; } /* Create TwitteroAuth object with app key/secret and token key/secret from default phase */ $twitter = Yii::$app->twitter->getTwitterTokened(Yii::$app->session['oauth_token'], Yii::$app->session['oauth_token_secret']); /* Request access tokens from twitter */ $access_token = $twitter->getAccessToken($_REQUEST['oauth_verifier']); /* Save the access tokens. Normally these would be saved in a database for future use. */ Yii::$app->session['access_token'] = $access_token; /* Remove no longer needed request tokens */ unset(Yii::$app->session['oauth_token']); unset(Yii::$app->session['oauth_token_secret']); if (200 == $twitter->http_code) { /* The user has been verified and the access tokens can be saved for future use */ Yii::$app->session['status'] = 'verified'; //get an access twitter object $twitter = Yii::$app->twitter->getTwitterTokened($access_token['oauth_token'],$access_token['oauth_token_secret']); //get user details $twuser= $twitter->get("account/verify_credentials"); //get friends ids $friends= $twitter->get("friends/ids"); //get followers ids $followers= $twitter->get("followers/ids"); //tweet $result=$twitter->post('statuses/update', ['status' => "Tweet message"]); } else { /* Save HTTP status for error dialog on connnect page.*/ //header('Location: /clearsessions.php'); return $this->redirect(Url::home()); } } } ?>
License
yii2-twitter is released under the BSD 3-Clause License. See the bundled LICENSE.md
for details.