OAuth認証を行うためのpearライブラリとしてHTTP_OAuthがあります。
今回は、そのライブラリを利用してtwitterの認証を行う方法をご紹介します。
1. HTTP_OAuthのインストール
HTTP_OAuthはHTTP_Request2、HTTP_Request2はNet_URL2に依存しています。
先にこれらのライブラリをインストールした後、インストールを行います。
# これらのライブラリはまだアルファバージョンなので、”channel://~”としてインストールします。
pear install channel://pear.php.net/Net_URL2-0.3.0 pear install channel://pear.php.net/HTTP_Request2-0.4.1 pear install channel://pear.php.net/HTTP_OAuth-0.1.4
2. OAuthの流れ
twitterでOAuthを利用するには、
1. https://twitter.com/apps/new でアプリケーションを登録
2. consumer_key, consumer_key_secretが発行されるのでメモ
3. consumer_key, consumer_key_secretとcallback_urlを指定して、request_tokenを取得(request_tokenはcallback後に使用するのでsessionに記憶しておく。)
4. authorize URLを取得
5. twitter側で認証した後、callback_urlに戻ってくるパラメータoauth_verifierと、request_tokenを利用して、access_tokenを取得
6. access_tokenをセットして、twitterの各種APIを呼び出す。
といった流れになります。
3. サンプルコード
twitterの方で紹介されている、PHP用OAuthのサンプルコードをHTTP_OAuthを使うように(ごにょごにょと)書き換えたら、こんな感じになります。
しかし、このサンプル書き方が汚い。。(時間があれば書き直しておきます。
書き直してみた。
上記サンプルを利用してBrightKiteへのOAuth認証やってみました。
$tok = $oauth->getAccessToken(‘https://twitter.com/oauth/access_token’, $oauth_verifier);
getAccessToken は戻り値を返さないのでは
ご指摘ありがとうございます。サンプルを修正しました。
確かに、HTTP_OAuth_Consumer::getAccessToken()は戻り値を返しませんね。
Pingback: PHPでTwitter APIのOAuthを使う方法まとめ - 頭ん中
Pingback: [PHP]PHPでTwitterのOAuth認証を実装する - ゼロから始めましょう