Twitter OAuth クイックスタート - nojimage/CakePHP-Twim GitHub Wiki
システムの認証として、Twitter OAuthを利用する手順は以下のようになります。
1. Twitterアプリケーションの設定
既に dev.twitter.com でアプリケーションの登録を済ませていることが前提となります。
Consumer key, Consumer secretを控え、app/Config/database.php
に設定します。
public $twitter = array(
'datasource' => 'Twim.TwimSource',
'oauth_consumer_key' => 'YOUR_CONSUMER_KEY',
'oauth_consumer_secret' => 'YOUR_CONSUMER_SECRET',
);
1.1 Callback URLの指定
TwitterアプリケーションのCallback URLを以下のように設定してください
http://{YOUR_APP_URL}/twim/oauth/callback
{YOUR_APP_URL}
は、あなたのアプリケーションのURLです。
もしくは、database.phpに以下のように設定します。
public $twitter = array(
'datasource' => 'Twim.TwimSource',
'oauth_consumer_key' => 'YOUR_CONSUMER_KEY',
'oauth_consumer_secret' => 'YOUR_CONSUMER_SECRET',
'oauth_callback' => '/twim/oauth/callback', // <--- Add this
);
2. Authコンポーネントの認証プロバイダを指定する
AppControllerでのAuthコンポーネントのauthenticate
プロパティにTwim.Twitter
を指定します。
また、ログインページをTwimデフォルトのページとします。
class AppController extends Controller {
// ...snip...
public $components = array(
'Session',
'Auth' => array(
'authenticate' => array(
'Twim.Twitter' => array(/* options */),
),
'loginAction' => array(
'plugin' => 'twim',
'controller' => 'oauth',
'action' => 'login',
),
),
);
// ...snip...
}
以上で基本の設定は完了です。
3. アクセスしてみる
それではあなたのアプリケーションへアクセスしてみてください。
認証が必要なページであれば、/twim/oauth/login
へリダイレクトされるはずです。
「Sign in with Twitter」ボタンをクリックすると、Twittterの認証画面へリダイレクトされます。アプリケーションを承認すると、あなたのアプリケーションへ戻り、ログイン状態となります。
4. ユーザー情報の取得
認証したTwitterユーザーのユーザー名、アクセストークン等はセッションに格納されています。
以下のように、AuthComponent経由で取り出せます。
$user = AuthComponent::user();
5. APIを呼び出す
Twitter APIの呼び出しはTwimプラグイン内の各モデルクラスを利用します。
ホームタイムラインを取得してみましょう。
$TwimStatus = ClassRegistry::init('Twim.TwimStatus');
// ログインユーザーのアクセストークンをセット
$TwimStatus->getDataSource()->setToken(AuthComponent::user());
// APIコール home timelineを20件取得
$statuses = $TwimStatus->find(TwimStatus::FINDTYPE_HOME_TIMELINE, array('limit' => 20));
まず、Twitter StatusにアクセスするためにTwimStatus
モデルを呼び出します。
次に、ログイン中のユーザーのアクセストークンをデータソースへセットします。
最後に、find
メソッドを使ってAPIリクエストを行います。
これでTwitterからホームタイムラインを取得できます。