コンピューター技術関係のブログなのに…
コンピューター関係の記事は人気がないけれど、
それはそれとしてOAUTH認証(TWITTER APIの場合)
のリクエストトークン取得方法を書いておきます。
とりあえずOAUTHの大まかな流れです。
1. ツイッターアプリケーション登録をする。
2. コンシューマーキーとコンシューマーシークレットを使ってリクエストトークンを取得する。
3. リクエストトークンとリクエストトークンシークレットを使ってアクセストークンを取得する。
4. アクセストークンを使ってAPIを実行する。
今回はリクエストトークンの取得ソースを掲載します。
記述プログラムはPHPでライブラリなどは使用していません
1.については https://twitter.com/apps で適当に登録すればできるので割愛します。
----------------ここからリクエストトークン取得------------------------------
リクエストトークン取得方法を更に分解して説明すると
1. 署名を作成する
2. リクエストトークン取得用URLに変数や1.で作った署名を加えてfile_get_contents();する。
3. 2.で取得したリクエストトークンとリクエストトークンシークレットをあとで使うために
セッション(クッキーみたいなもの)に保存する。
4. ユーザーに許可を得るために専用のURLに2.で取得した物を加えてリダイレクトする。
----ここから実際のコード(コードとソースの厳密な使い分け方はよくわかりません)----
//変数の作成
$req_url="https://twitter.com/oauth/request_token"; //→リクエストトークン取得先のURL
$aut_url="https://twitter.com/oauth/authorize"; //→ユーザーに許可を得るためのURL
$consumer_k="あなたのアプリケーションのコンシューマーキー";
$cons_secret="あなたのアプリケーションのコンシューマーシークレットキー";
$sign_meth="HMAC-SHA1"; //固定
$nonce=md5(uniqid(mt_rand(), TRUE)); //固定
$jikan=time(); //固定
$ver="1.0"; //固定「
//署名の作成(コピーアンドペーストでそのまま使えます。順番を入れ替えたりしないでください)
$sign="GET&";
$sign.=rawurlencode($req_url) ."&";
$sign2="oauth_consumer_key=" .$consumer_k ."&";
$sign2.="oauth_nonce=" .$nonce ."&";
$sign2.="oauth_signature_method=" .$sign_meth ."&";
$sign2.="oauth_timestamp=" .$jikan ."&";
$sign2.="oauth_version=" .$ver;
$sign3=rawurlencode($cons_secret) ."&";
$s2=$sign2;
$sign2=rawurlencode($sign2);
$sign.=$sign2;
$signature=base64_encode(hash_hmac('sha1', $sign, $sign3, true)); //署名完成
//リクエストトークンを取得する
$sign2="oauth_consumer_key=" .rawurlencode($consumer_k) ."&";
$sign2.="oauth_nonce=" .rawurlencode($nonce) ."&";
$sign2.="oauth_signature_method=" .rawurlencode($sign_meth) ."&";
$sign2.="oauth_timestamp=" .rawurlencode($jikan) ."&";
$sign2.="oauth_signature=" .rawurlencode($signature) ."&";
$sign2.="oauth_version=" .rawurlencode($ver);
$url=$req_url ."?" .$sign2;
$url2=file_get_contents($url); //実行すると$url2にリクエストトークンとリクエストトークンシークレットが入っている
//セッションに保存する
session_start(); //セッション開始
$res=split("&", $url2);
$res2=split("=",$res[0]);
$res3=split("=",$res[1]);
$_SESSION['oauth_token']=$res2[1];
$_SESSION['oauth_token_secret']=$res3[1];
//ユーザーに許可を得るためのURLへリクエストトークンを添えてリダイレクトする。
header("Location: " .$aut_url ."?" .$res[0]);
上記までが正常であれば下記のような画面へ移行します。

このようになればとりあえずリクエストトークンの取得は成功です。お疲れ様でした。
━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─
↓URL短縮ツール
http://akb.cx/
━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─
↓携帯用掲示板サイト

トピッキング
iPhone4…
iPhone4買っちゃった
機種代が0円なのでついつい衝動買いです。
ついでにソフトバンクのモバイルWiFiルーター?
も買ってしまった。これも機種代0円です。
どうしよう何のために買ったんだろう?
まあいいか。
━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─
↓URL短縮ツール
http://akb.cx/
━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─
↓携帯用掲示板サイト

トピッキング

