tmhOAuth依存のTwitterパッケージを作りました。 http://madroom-project.blogspot.jp/2013/05/fuelphptwitter.html
--
各種FWで使えそうなTwitter用のライブラリを再考していて、Twitterのライブラリ一覧を見てみると"tmhOAuth"というのがありました。
https://dev.twitter.com/docs/twitter-libraries
https://github.com/themattharris/tmhOAuth
試しに、Composerでインストールして使ってみます。
composer.jsonに以下を追記します。
"themattharris/tmhoauth": "0.*"インストールします。
$ php composer.phar update # またはinstall以下を参考にした、認証コントローラのサンプルです。
https://github.com/themattharris/tmhOAuth-examples/blob/master/oauth_flow.php
<?php class Controller_Oauth extends Controller { public function action_login() { // OAuth用のSessionを削除 Session::delete('oauth'); // tmhOAuthのインスタンスを生成 $twitter = new tmhOAuth(array( 'consumer_key' => 'YOUR_CONSUMER_KEY', 'consumer_secret' => 'YOUR_CONSUMER_SECRET', )); // Request Tokenの取得 $code = $twitter->request('POST', $twitter->url('oauth/request_token', '')); if ($code != 200) { throw new Exception('Invalid code.'); } $params = $twitter->extract_params($twitter->response['response']); // OAuth用のSessionをセット Session::set('oauth.params', $params); // 認証画面にリダイレクト $url = $twitter->url('oauth/authorize', '')."?oauth_token={$params['oauth_token']}"; Response::redirect($url); } public function action_callback() { // OAuth用のSessionを取得 $params = Session::get('oauth.params'); // tmhOAuthのインスタンスを生成 $twitter = new tmhOAuth(array( 'consumer_key' => 'YOUR_CONSUMER_KEY', 'consumer_secret' => 'YOUR_CONSUMER_SECRET', )); $twitter->config['user_token'] = $params['oauth_token']; $twitter->config['user_secret'] = $params['oauth_token_secret']; // Access Tokenの取得 $code = $twitter->request( 'POST', $twitter->url('oauth/access_token', ''), array( 'oauth_verifier' => Input::get('oauth_verifier'), ) ); if ($code != 200) { throw new Exception('Invalid code.'); } // データの確認 $access_token = $twitter->extract_params($twitter->response['response']); print(' [user_id] : '. $access_token['user_id']); print(' [screen_name] : '. $access_token['screen_name']); print(' [oauth_token] : '. $access_token['oauth_token']); print(' [oauth_token_secret] : '.$access_token['oauth_token_secret']); // OAuth用のSessionを削除 Session::delete('oauth'); exit(); // 以下、投稿のサンプル // $twitter = new tmhOAuth(array( // 'consumer_key' => 'YOUR_CONSUMER_KEY', // 'consumer_secret' => 'YOUR_CONSUMER_SECRET', // 'user_token' => $access_token['oauth_token'], // 'user_secret' => $access_token['oauth_token_secret'], // )); // // $twitter->request('POST', $twitter->url('1.1/statuses/update'), array( // 'status' => 'Test' // )); // // print_r($twitter->response['response']); // // exit(); } }とりあえず、"tmhOAuth"で良いかなー。
No comments:
Post a Comment