TwitterApiComponentを作った

cakePHPで良い感じのTwitterコンポーネントが見つからなかったので自分で作ってみました。
[TwitterApiComponent][1]

OAuthに対応しており、かつTwitterに気軽にツイートとかできてしまいます。

ということで使い方を説明しておきます。
まず、今回必要なものは以下の通りです。
consumerKeyとconsumerSecret
OAuth consumer component

1.アプリ登録して、OAuth consumer componentを入手する : consumerKeyとconsumerSecretはTwitterからアプリケーションを登録する際に入手できます。
OAuth consumer componentは下記のURLから取得してください。

http://code.42dh.com/oauth/

※OAuth consumer classのダウンロードではなく、OAuth consumer componentほうだけダウンロード大丈夫です。</dd> 
2.OAuth consumer compoonentをアプリケーションに設置する
:   ダウンロード後解凍し、OAuthディレクトリを「app/vendors」に入れてください。  
    oauth_consumersフォルダと、oauth_consumer.phpを「app/controllers/conponents」に入れてください。</p> 
    次にapp/controllers/components/oauth_consumers」にtwitter_consumer.phpを作成してください。
    
    ```
3.TwitterApiComponentを設置 : tiwtter_api.phpを「app/controllers/components」に入れてください。 [email protected]:polidog/TwitterApiComponent.git 4.適当にコントローラを用意する : 以下のように記載するだけでtwitterAPIが気軽に使えてしまいます。

``` TwitterApi->autoStartAction['oauthStart'] = "/twitter/oauth"; //oauth認証を開始するためのアクションの指定 $this->TwitterApi->autoStartAction['oauthCallback'] = "/twitter/callback"; //oauth認証時のコールバックアクションを指定 $this->TwitterApi->redirectUrl['oauth_denied'] = "/"; //認証が拒否された場合のリダイレクトする先(nullだとリダイレクトしない) $this->TwitterApi->redirectUrl['oauth_noauthorize'] = "/"; //認証に失敗した場合のリダイレクト先(nullだとリダイレクトしない) $this->TwitterApi->redirectUrl['oauth_authorize'] = null; //認証成功の場合のリダイレクト先 } function oauth() { } function callback() { // 認証に成功したら、ユーザー情報を取得する $data = $this->TwitterApi->apiAccountVerify_credentials(); var_dump($data); exit("stop"); } } ``` 5.twitterAPIのコールメソッドについて : TwitterAPIをコールする際のメソッドは以下のような命名規則になっています。 たとえばacount/verify_credentialsというapiをコールした場合は命名規則は以下のようなメソッド名になります。

``` apiAcountVerity_credentials(); ``` 頭にapiという名前を付ける。 「/」の後に来る文字は大文字を指定する。 の2つになります。 また、以下のようにコールしてもapiをコールできます。 ``` api('/acount/verify_credentials'); ``` また、何かしらapiコール時にパラメータが必要な場合は以下のように指定します。 ``` 'value')); ``` というかたちで指定ができます。 例:twitterに投稿する ``` 'ツイートのテスト!!','post'); ``` ※post形式の場合のapiは必ず2番名の引数にpostを指定してください。 6.apiコール時の戻り値について : apiコールした際の戻り値は基本的に配列となっています。 また、デフォルトではjson形式で取得し、配列に変換してから返り値として返ってきます。 json形式で値を受け取りたい場合は以下のようにします

``` apiAccountVerify_credentials(array(),'get','json',false); ``` ちなみにxml形式での値を受け取ることもできます。 その場合は以下の通りです。 ``` apiAccountVerify_credentials(array(),'get','xml',false); ``` まだまだ、バグとかあるかもしれないので、いろいろと試してみてもらえると助かります。 ## 追記 2010/10/24 OAuth認証時のcallbackのURLの指定について : Twitterにアプリケーション登録する際に、callbackのURLを指定するのですが、beforeFilter時にそのcallbackのURLを指定してください。 ちなみに、OAuth認証を行うアクションのみで、大丈夫です。 また、指定をしない場合は、デフォルトで$_SERVER['SEVER_NAME']と$this->autoStartAction['oauthCallback']のアクションの指定部分から自動的に設定されます。

``` TwitterApi->autoStartAction['oauthStart'] = "/twitter/oauth"; //oauth認証を開始するためのアクションの指定 $this->TwitterApi->autoStartAction['oauthCallback'] = "/twitter/callback"; //oauth認証時のコールバックアクションを指定 $this->TwitterApi->redirectUrl['oauth_denied'] = "/"; //認証が拒否された場合のリダイレクトする先(nullだとリダイレクトしない) $this->TwitterApi->redirectUrl['oauth_noauthorize'] = "/"; //認証に失敗した場合のリダイレクト先(nullだとリダイレクトしない) $this->TwitterApi->redirectUrl['oauth_authorize'] = null; //認証成功の場合のリダイレクト先 $this->TwitterApi->oauthCallbackUrl = "http://twittertest.polidog.jp/twitter/callback"; } function oauth() { } function callback() { // 認証に成功したら、ユーザー情報を取得する $data = $this->TwitterApi->apiAccountVerify_credentials(); var_dump($data); exit("stop"); } } ``` [1]: http://github.com/polidog/TwitterApiComponent [2]: http://d.hatena.ne.jp/hagimi/20091123/p2

カテゴリ