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