ソースを表示
TwitterOAuth
のソース
移動:
案内
,
検索
{{PAGENAME}}では、TwitterでのOAuth認証の手順のメモを記す。 ==概要== ここでは、 [http://abrah.am Abraham Williams] によるPHPでのTwitterOAuth認証の実装 '''Twitter's OAuth API''' を使用して、WebベースでのTwitterアプリの認証に関する説明を行っている。'''Twitter's OAuth API''' はgithubで配布されている。 *https://wiki.github.com/abraham/twitteroauth/documentation *https://github.com/abraham/twitteroauth ===注意事項=== ここで挙げているサンプルは検証・確認・説明のためのもので、本来秘密にすべき情報も非SSLのうえ平文で表示している。実際に運用するアプリに組み込む場合には'''暗号化を行う必要がある'''。 ===認証の仕組み=== (stub) ==事前準備== まず、twitterにアプリを登録する必要がある。appsにログインし、アプリケーションを登録し、必要なコンシューマキーを取得し、そのほかいくつの設定を行う必要がある。 *コンシューマキー, コンシューマキーシークレットの取得 *コールバックURLを設定 *その他 任意の設定 *[https://twitter.com/apps twitter.com/apps] ===コールバックURL=== コールバックURLには『twitter側で認証を行ったあと 戻ってくるべきURL』を入力する。ここで掲示しているサンプルの場合、oa2.phpのありかを指定するのが正しい。 ==サンプルソースコード== *oasetting.php <?php $ckey = "xxxxxxxxxxxxxxxxxxxxxx"; $csec = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; ?> :前述の作業で取得したコンシューマキーとコンシューマキーシークレットを記述する。シークレット部は公開されてはならないものであり、これが漏洩するとアプリの安全性は皆無に等しい。 *oa1.php <html> <head> <title>OA1</title> </head> <body> <?php // APIおよびConsumerKeyの読み込み require_once("./LIB/twitteroauth.php"); require_once("./oasetting.php"); $TOA = new TwitterOAuth($ckey, $csec); // リクエストトークン取得 $RequestToken = $TOA->getRequestToken(); //print_r($RequestToken); // 認証トークン取得と認証URL取得 $AuthURL = $TOA->getAuthorizeURL($RequestToken, TRUE); // リクエストトークンをcookieに丸ごと保存 session_start(); $_SESSION["token"] = $RequestToken; // 認証URLへのリンク echo "<a href=\"$AuthURL\">$AuthURL</a>\n"; ?> </body> </html> :まず getRequestToken( ) にてリクエストトークンを取得しているが、これはアプリの権限で取得した1回限りのトークン。このトークンを使ってtwitterで認証を行い、今後使用できるユーザ認証済みのトークンを取得する。 :次に getAuthorizeURL( ) にて取得しているのは、認証するためのURL。このURLには先ほど取得したトークンが組み込まれており、ここにアクセスすると『このアプリに対するユーザの認証』が行われる。認証された場合、'''事前準備'''項にてアプリケーションをtwitterに登録した際のコールバックURLが呼ばれる。 *oa2.php <html> <head> <title>OA2</title> </head> <body> <?php require_once("./LIB/twitteroauth.php"); require_once("./oasetting.php"); // リクエストトークンをcookieから読み戻す session_start(); $RequestToken = $_SESSION["token"]; // アクセストークンを取得 $TOA = new TwitterOAuth($ckey, $csec, $RequestToken["oauth_token"], $RequestToken["oauth_token_secret"]); $AccessToken = $TOA->getAccessToken(); print_r($AccessToken); ?> </body> </html> :コールバックされた際に、URLにアクセストークンとシークレット部が付与されているので、今後このユーザのアクセスは付与されたアクセストークンを使用する。もちろんシークレット部は公開されてはならない(ゆえに非SSLで実運用してはいけない。重大な脆弱性となる)。 :アプリケーション固有のコンシューマキー群を読み出し、クッキーに保存されたトークンと組み合わせて アクセストークンとする。このサンプルでは画面に表示される(もちろん本来は表示してはいけない)以下の情報を使ってtwitterにアクセスを行う。 * $AccessToken->oauth_token * $AccessToken->oauth_token_secret ===認証結果例=== 認証が正常に行われた場合、以下のような情報が表示される。もちろん表示例はでたらめな文字列であるためあしからず。 Array ( [oauth_token] => 8290478571-x6mqik3dVIB8TG7wkjOQXU7m8fekChp9Q9z8a9k [oauth_token_secret] => kWdytvKveg4X1MmcSA4cYdAx4huedM2WlvbP1KLVO1 [user_id] => 8290478571 [screen_name] => yourscreenname ) [[Category:Twitter]]
TwitterOAuth
に戻る。
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
TOP
Portal
RecentChanges
JUDSTYLE.jp
ツールボックス
リンク元
関連ページの更新状況
特別ページ