2014年4月5日土曜日

PHP:OAuth 関数群で Twitter 認証 その1

PHP から Twitter API を使用する場合、いくつかの専用ライブラリが公開されています。
今回はそれらを使用せず、PECL 上で公開されている OAuth 拡張モジュールを使用してみます。OAuth 拡張モジュールは OAuth コンシューマ側のみではなくプロバイダ側も書くことができます。今回はコンシューマとして Twitter へアクセスします。

まずは Twitter Developers からアプリの API key と API secret をメモしておきましょう。


config.php などを作って PHP から参照できるようにしておきます。
<?php
/**
 * config.php
 */
$config = array();
$config['twitter_api_key'] = '*********************';  // Twitter のコンシューマキー
$config['twitter_api_secret'] = '********************************';  // Twitter のコンシューマシークレット
?>

Tiwtter で使用されている OAuth1.0a の流れを確認しておきましょう。
(現在アプリ単位での認証は OAuth2.0 が使われるようです)


まず最初に、Twitter から発行された API key と API secret を使って Twitter からリクエストトークンを取得します。事前に Twitter へアプリを登録しておけば特に何もせずに発行されます。

続いて取得したリクエストトークンを付加して Twitter の認証ページヘリダイレクトします。「このアプリがあなたのデータへアクセスすることを許可しますか?」というおなじみの画面です。ここでユーザが許可することによって、認証済みのリクエストトークンを付加した状態でアプリへリダイレクトされます。

認証済みのリクエストトークンが手に入ったら API を使用するためのアクエストークンを取得します。これは認証済みのリクエストトークンと引き換えに入手することができます。

アクセストークンが手に入ったら Twitter API を使って、ユーザのデータを取得したり操作することができるようになります。

具体的なコーディングは次回へ続きます。

0 件のコメント:

コメントを投稿