PECLのOAuthでTwitter OAuth

少し前の話ですが、PECLのOAuthライブラリを利用して、TwitterにOAuthしてみたので、その過程を思い出しながらメモしておきます。

まずは、PECL OAuthのインストール。(環境はOSXです)

sudo port install php5-oauth

httpdを再起動して終わり。(だったはず。もしかすると、php.iniとかいじらないといけないかも。忘れました。)

で、実際にTwitterにOAuthするには、まずはTwitterでOAuthのConsumer keyと、Consumer secretを取得すべくアプリケーションの登録をこちらから行います。で、次はいよいよコードです。

OAuthのフローは、TwitterのDevサイトにわかりやすい絵がありますので、そちらを拝借してきました。このフローにそって、コードを説明。

// まずは、OAuthオブジェクトを生成します。
$oauth = new OAuth('あなたのConsumer Key','あなたのConsumer secret',OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI);

// フローのA、戻ってくるのがフローのB
$request_token = $oauth->getRequestToken('http://api.twitter.com/oauth/request_token');

// フローのCとDは、ブラウザーでのアクセスになります。Twitterの場合は、こんなフォーマットです。
echo "http://api.twitter.com/oauth/authorize?oauth_token=".$request_token["oauth_token"];

// フローのEとF(アクセストークンの取得)
$oauth->setToken($request_token['oauth_token'],$request_token['oauth_token_secret']);
$access_token = $oauth->getAccessToken('http://api.twitter.com/oauth/access_token');

// フローGの部分ですが、ここでは、Hello! world!!と、つぶやきつつ、レスポンスを出力してみます。
$params = array( 'status' => 'Hello! world!!' );
$oauth->setToken($access_token["oauth_token"],$access_token["oauth_token_secret"]);
$oauth->fetch('http://api.twitter.com/1/statuses/update.xml', $params, OAUTH_HTTP_METHOD_POST );
var_dump( json_decode( $oauth->getLastResponse() ) );

と言う流れです。

Posted in: 技術の話

Tags: , , ,



1件のコメント

rssComments RSS transmitTrackBack Identifier URI


[...] This post was mentioned on Twitter by サトウマサヒコ. サトウマサヒコ said: ブログを更新しました: PECLのOAuthでTwitter OAuth http://straighten.jp/2010/04/pecl%e3%81%aeoauth%e3%81%a7twitter-oauth/ [...]

ピンバック by Tweets that mention ブログを更新しました: PECLのOAuthでTwitter OAuth -- Topsy.com on 2010年4月20日 1:11 PM

addコメントする