30歳から始めたプログラミング -51ページ目

百物語


百物語楽しみです

初の訪問者さん・・・


二人でテレビ見ました

昼飯がまずい

いつも昼飯食ってる公園にゴミが散乱してやがる。

ゴミくらい家に持って帰れよ。

コンピューター技術関係のブログなのに…


コンピューター関係の記事は人気がないけれど、
それはそれとして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]);



上記までが正常であれば下記のような画面へ移行します。



$30歳から始めるWEBプログラミング


このようになればとりあえずリクエストトークンの取得は成功です。お疲れ様でした。







━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─

↓URL短縮ツール

http://akb.cx/

━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─

↓携帯用掲示板サイト

$30歳から始めるWEBプログラミング

トピッキング

人気ブログランキング



iPhone4…




iPhone4買っちゃった
機種代が0円なのでついつい衝動買いです。


ついでにソフトバンクのモバイルWiFiルーター?
も買ってしまった。これも機種代0円です。


どうしよう何のために買ったんだろう?
まあいいか。



━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─

↓URL短縮ツール

http://akb.cx/

━─━─━─━─━─━─━─━─━─━─━─━─━─━─━─

↓携帯用掲示板サイト

$30歳から始めるWEBプログラミング

トピッキング

人気ブログランキング