Access Token, Access Token Secretを取得するには、ユーザーに対してTwitterアプリからのアクセスを承認してもらう必要があります。 ユーザーに承認してもらうには、以下のような認証画面を表示します。
Twitterで、この画面を何回か見たことがあるよね!!。
では、cordbird.phpで認証画面を表示するコードだよ。
// セッション開始 session_start(); // include require_once ('codebird.php'); // Consumer Keyの設定 \Codebird\Codebird::setConsumer Key( 'Consumer Keyを設定', 'Consumer Secretを設定' ); // インスタンス取得 $cb = \Codebird\Codebird::getInstance(); // OAuthTokenを取得します。 $reply = $cb->oauth_requestToken( array( 'oauth_callback' => 'コールバックURLを設定' ) ); /* 後でコールバックURLにて参照するので、OAuthTokenを セッションに保存しておきます。 */ $_SESSION['oauth_token'] = $reply->oauth_token; $_SESSION['oauth_token_secret'] = $reply->oauth_token_secret; // アクセストークンを設定 $cb->setToken( $reply->oauth_token, $reply->oauth_token_secret ); // 認証URLの取得 $auth_url = $cb->oauth_authorize(); // 認証URLへ遷移する header( 'Location: '.$auth_url );
アクセストークン(oauth_token, oauth_token_secret)はコールバック画面で利用します。 セッション変数や、ファイル、DBなどに保存しておいて、コールバック画面側から取得できるようにしておいてください。
先ほどのコードを実行すると、認証画面が表示されます。
「連携アプリを認証」もしくは、「キャンセル」を押下すると、 OAuthTokenを取得する際に指定した、コールバックURLに遷移します。
それでは、コールバックURLでAccess Tokenを取得するまでの手順だよ。
コールバックURLへはoauth_tokenとoauth_verifierの2つのパラメータがURLのクエリで渡されてきます。
コールバックURLの処理だよ!!。
// セッション開始 session_start(); // include require_once ('codebird.php'); // 認証失敗判定用変数 $auth_fail = FALSE; // コールバックURLのパラメータチェック if ( !isset( $_GET['oauth_token'] ) || !isset( $_GET['oauth_verifier'] ) ) { $auth_fail = TRUE; } // セッション内容のチェック else if ( !isset( $_SESSION['oauth_token'] ) || !isset( $_SESSION['oauth_token_secret'] ) ) { $auth_fail = TRUE; } // OAuthTokenが一致するか確認 else if ( $_SESSION['oauth_token'] !== $_GET[ 'oauth_token' ] ) { $auth_fail = TRUE; } /* 認証成功判定 */ if ( FALSE != $auth_fail ) { echo "認証できませんでした。<br/>"; unset( $_SESSION ); exit(); } // Consumer Keyの設定 \Codebird\Codebird::setConsumer Key( 'Consumer Keyを設定', 'Consumer Secretを設定' ); // インスタンス取得 $cb = \Codebird\Codebird::getInstance(); // RequestTokenの設定( 認証時に利用したTokenを使います ) $cb->setToken( $_SESSION[ 'oauth_token' ], $_SESSION[ 'oauth_token_secret' ] ); // AccessTokenの取得 $reply = $cb->oauth_accessToken( array( 'oauth_verifier' => $_GET[ 'oauth_verifier' ] ) ); // 取得できたかを確認する if ( !isset( $reply->oauth_token ) || !isset( $reply->oauth_token_secret ) ) { echo "AccessTokenが取得できませんでした。<br/>"; unset( $_SESSION ); exit(); } else { /* AccessTokenの取得に成功しました。 この値でユーザーの情報にアクセスができる ようになります。セッションやDBなどに大切 に保存します。 */ $_SESSION[ 'oauth_token' ] = $reply->oauth_token; $_SESSION[ 'oauth_token_secret' ] = $reply->oauth_token_secret; }
Access Token, Access Token Secretはユーザーの情報にアクセスできる大事な情報です。他人に知られないように慎重に扱ってくださいね。
Access Token、 Access Token Secretの取得方法について理解できましたか?
ちょっと難しかった!?
大事なので、もう一度読み返して理解してね!!。
Access Token、 Access Token Secretが取得できれば、色々なTwitterのAPIにアクセスすることができます。 あとは、アイデア次第でいろいろなアプリを作成していけるよ!!。
codebird.phpを使って、 ユーザー認証を行ってAccess Token, Access Token Secretを取得する方法について勉強するね。