11月 09

OAuth認証ってナニ?のエントリで紹介したWriting A Simple Twitter Client Using the PHP Zend Framework’s OAuth Library (Zend_Oauth)のブログエントリに掲載されているZend_Oauthを利用して、TwitterでOAuth認証を行うためのチュートリアルを書き留めておきます。

Zend_Oauthライブラリをダウンロード

Zend Frameworkの最新バージョン(本エントリ執筆時点)であるV1.9.5では、Zend_Oauthライブラリは本流(main trunk)には組み込まれておらず、インキュベータ(incubator:孵化器)の中で開発が進められています(次期バージョンのV1.10では、本流に組み込まれる予定のようです)。そのため、Zend Frameworkのダウンロードサイトで入手できるZend FrameworkにはZend_Oauthが含まれていません。Zend_Oauthライブラリを入手するためには、SVN経由でインキュベータのソースを別途ダウンロードする必要があります。

Zend Framework Wiki内に、Zend FrameworkのソースをSVNでダウンロードする方法が詳しく書かれています。
UNIX系OSの場合は、以下のsvnコマンドでチェックアウトします。

svn checkout http://framework.zend.com/svn/framework/standard/incubator/

Windowsの場合は、TortoiseSVNを使ってチェックアウトしましょう。
tortoisesvn

自分でチェックアウトするのが面倒な方は、Zend_Oauthのライブラリだけを抽出したソースをアーカイブしたものをこちらに置いておきますのでダウンロードしてください(基本的にはSVNで最新のソースを入手することをお薦めします)。

ディレクトリ/ファイル構成

ここで紹介するチュートリアルでは、以下のようなディレクトリ/ファイル構成で進めていきます。

+ application/
|   + controllers/
|   |   + OauthController.php
|   |
|   + models/
|       + OauthConsumer.php
|       + config.ini
|
+ public/
|   + index.php
|
+ zf/
    + incubator/
    |   + library/
    |       + Zend/
    |
    + library/
        + Zend/

ダウンロードしたZend_Oauthライブラリは、zf/incubator/libraryディレクトリに配置します。本流のZend Frameworkライブラリはzf/libraryに配置しています。public/index.phpにはアプリケーションのフロントエンドコントローラーを、application/controllers/OauthController.phpはOAuth認証を行うアクションコントローラーを、OAuthコンシューマーを実装したクラスをapplication/models/OauthConsumer.phpにそれぞれ実装していきます。application/models/config.iniには、OAuth認証で必要となるパラメーターを記述します。

インキュベータのソースを組み込む

インキュベータ内にあるZend_Oauthライブラリを、本流のZend Frameworkライブラリと同じようにロードできるように、public/index.phpでインキュベータのソースをインクルードパスに追加します。

define('ROOT_DIR', '/path/to/root/');

set_include_path(
    ROOT_DIR . 'zf/incubator/library' . PATH_SEPARATOR .
    ROOT_DIR . 'zf/library' . PATH_SEPARATOR .
    get_include_path()
);

ROOT_DIRは、上記ディレクトリ構成のルートディレクトリに読み替えてください。

OAuth認証のパラメーターを設定する

冒頭で紹介したブログエントリでは、OAuth認証のパラメーターを配列($configuration)に格納していますが、PHPソースにパラメーターをハードコーディングするのは汎用性に欠けるので、application/models/config.iniにパラメーターを記述してZend_Config_Iniを使ってロードするようにします。ここでは、TwitterのOAuth認証に最低限必要なパラメーターを[twitter_oauth]セクションに記述します。

[twitter_oauth]
siteUrl = http://twitter.com/oauth
callbackUrl = http://yourdomain/oauth/callback
consumerKey = xxxxxxxxxx
consumerSecret = xxxxxxxxxx

3 Pings to “Zend_Oauthを使ってOAuth認証するチュートリアル(前編)”

  1. Zend_Oauthを使ってOAuth認証するチュートリアル(後編) | H2+ Goes On Says:

    [...] Zend_Oauthを使ってOAuth認証するチュートリアル(前編) [...]

  2. Zend_OAuthを使ってTwitterAPIを叩く | Websegment.net Says:

    [...] ・Zend_Oauthを使ってOAuth認証するチュートリアル(前編) [...]

  3. links for 2011-06-06 « test Says:

    [...] Zend_Oauthを使ってOAuth認証するチュートリアル(前編) | H2+ Goes On (tags: oauth php zendframework) [...]


コメントをどうぞ