HTTP_OAuthを利用してTwitterのOAuth認証を行う

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を使うように(ごにょごにょと)書き換えたら、こんな感じになります。

しかし、このサンプル書き方が汚い。。(時間があれば書き直しておきます。
書き直してみた。

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

3 Comments »

 
  • おんそく より:

    上記サンプルを利用してBrightKiteへのOAuth認証やってみました。

  • test より:

    $tok = $oauth->getAccessToken(‘https://twitter.com/oauth/access_token’, $oauth_verifier);

    getAccessToken は戻り値を返さないのでは

    • nojimage より:

      ご指摘ありがとうございます。サンプルを修正しました。
      確かに、HTTP_OAuth_Consumer::getAccessToken()は戻り値を返しませんね。

 

コメントをどうぞ

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Get Adobe Flash playerPlugin by wpburn.com wordpress themes