PHPでTwitter API。oAuthを使ってリクエストトークンを取得する。

はい、備忘録です。

Twitter APIでアプリケーションを作成するにあたって、PEARを使った方法はいろいろあるんだけど、なんとなく内容を把握せずに使うのも気がひける、っつーことで、素のPHPコードで試してみる。

特に、リクエストトークンを取得するまでが超面倒なんで、そこの部分だけ晒してみるテスト。
Product Advertising APIを触ってて良かった。

以下ソース。

 TWTR_CONSUMER_KEY,
	'oauth_signature_method' => 'HMAC-SHA1',
	'oauth_timestamp' => time(),
	'oauth_nonce' => md5(uniqid(mt_rand(), TRUE)),
	'oauth_version'=> '1.0',
);

//変数名でソート
$request_sorted = $request_param;
ksort($request_sorted);

//1行のクエリに加工
$request_queries = array();
foreach ($request_sorted as $k => $v) $request_queries[] = "{$k}={$v}";
$request_query = implode('&', $request_queries);

//それぞれをURLエンコードして接続
$twtr_signature_base  = "GET&";
$twtr_signature_base .= rawurlencode('http://'. TWTR_REQUEST_DOMAIN. TWTR_REQUEST_PATH). "&";
$twtr_signature_base .= rawurlencode($request_query);

//Signatureの作成とクエリーの作成
$request_param['oauth_signature'] = base64_encode(hash_hmac('sha1', $twtr_signature_base, rawurlencode(TWTR_CONSUMER_SECRET).'&', true));$request_queries = array();
foreach ($request_param as $k => $v) $request_queries[] = $k. '='. rawurlencode($v);
$request_query = implode('&', $request_queries);

//リクエストURLの作成
$twtr_signed_url = 'http://'. TWTR_REQUEST_DOMAIN. TWTR_REQUEST_PATH. '?'. $request_query;

//リクエストトークンの取得
echo file_get_contents($twtr_signed_url);
Twitter API プログラミング
辻村 浩
ワークスコーポレーション
売り上げランキング: 131008

スポンサードリンク