今回はユーザの許可を得る部分をやります。
OAuth では ID や パスワードを使った認証部分を Web サービスに任せたまま、
ユーザデータを外部から使用することができます。
Twitter の場合だとユーザ情報を取得したりツイートしたりすることができます。
そのため、必ずユーザへどのようにデータを使用するかを説明したうえで、
ユーザデータを使用する許可を得なければなりません。
Twitter の場合は上のようにお馴染みの画面で許可を得ることができます。
未認証リクエストトークンを GET パラメータとして付加して、
Twitter の認証ページヘリダイレクトすればよいです。
// リクエストトークンの取得
$tokens = $oauth->getRequestToken('https://api.twitter.com/oauth/request_token');
// Twitter 認証ページヘリダイレクト
http_redirect('https://api.twitter.com/oauth/authorize', array('oauth_token' => $tokens['oauth_token']));
// リダイレクトは以下でもOK
header('Location: https://api.twitter.com/oauth/authorize?oauth_token=' . $tokens['oauth_token']);
リダイレクトには http_redirect() を使用していますが、header() でもよいです。
これによって上の画像のように認証ページヘジャンプします。
認証が完了すると Twitter へ登録したコールバック URL へ戻ってきます。
コールバックされた時に GET パラメータへ設定されている oauth_token が、
認証済みのリクエストトークンなので、コールバック先の PHP で取得します。
ユーザが許可しなかった場合には danied パラメータが付加されるので
こちらもチェックしておきます。
// ツイッターへのログイン失敗
if(isset($_GET['denied'])) {
echo '許可がおりませんでした';
} else {
$token = $_GET['oauth_token'];
}
次回へ続きます。


0 件のコメント:
コメントを投稿