SQLの窓

2013年12月07日


手動で Facebook API の 60日間の アクセストークンを取得する

以下で実際に投稿できます(本文の手順でアクセストークンを取得して下さい)
▼ 簡易的なので、日本語は不可です ( ここは Shift_JIS なので。UTF-8 のページなら日本語可です )

▼ 自分のみになる設定です
▼ リンク設定
▼ 画像設定
( 投稿時のパラメータの日本語訳ドキュメント )
とにかくアクセストークンがすぐ欲しい場合

App ID を取得しているという前提で、Graph API Explorer にアクセスして、自分のアプリを選択してから権限を選択(通常デフォルトで十分です)してアクセストークンを取得します。

▼ プログラムを書いてそこから投稿がアプリ名



▼『アクセストークンを取得』をクリックすると、ウインドウが開いて必要なパーミッションを選択します



▲ その後、『Get Access Token』をクリックすると、アクセストークンが『アクセストークンを取得』ボタンの左に表示されます


ブラウザを使う(現在 IE でしか取得できません)


ブラウザを使って手動で60間有効なアクセストークンを取得します。Google Chrome でテストしました( IE では結果がうまく戻りません )

まず以下の 文字列を作成してアドレスバーに入力します。すると、ログインされていない場合はログインページが表示され、ログイン済の場合は Success とだけ表示されて、アドレスバーに 2時間有効なアクセストークンが表示されます。そのアクセストークンを取得して下さい

現在、blank.html が表示されますが、Google Chrome のデベロッパーツールで、Network を開いて実行すると、『login_success.html#access_token=2時間有効なアクセストークン』という形式での URL を確認することができます。

結果的に、IE でのみ左端で右クリックして URL のコピーを行う事で取得できる事を確認しています

▼ 2時間有効なアクセストークンを取得する URL

( ログインしていない場合は、ログイン画面が表示されます )
https://www.facebook.com/dialog/oauth/?redirect_uri=http://www.facebook.com/connect/login_success.html&response_type=token&client_id=APIキー&scope=user_about_me,user_photos,read_stream,publish_stream
以下で実際に取得できます(IEで事前にFacebook をログオフしておく)


▼ ここだけ変更します

Facebook をログオフしておいて、上のフォームを実行すると、ログイン画面が表示されるので、そこで開発者ツールを開いてネットワークキャプチャを有効にしてログインします。



▲ この画像は、IE11 ですが、IE10 でも動作は確認しました。

▼ この時取得した URL は以下のようになります
http://www.facebook.com/connect/login_success.html#access_token=アクセストークン&expires_in=6047
その2時間有効なアクセストークンを60日間有効なアクセストークンに交換する為に以下の文字列を作成します。
https://graph.facebook.com/oauth/access_token?client_id=APIキー&client_secret=アプリのシークレットキー&grant_type=fb_exchange_token&fb_exchange_token=2時間有効なアクセストークン
以下で実際に取得できます(ここはどのブラウザでも OK です)

▼ ここを変更します
▼ ここを変更します
▼ ここを変更します
▲ 上のフォームから送信すると、ページ内にアクセストークンが表示されます

一般的には、この文字列をブラウザのアドレスバーに入力すると、テキストとして以下のような文字列が帰って来ます。
access_token=60日間有効なアクセストークン&expires=残り時間


ここから以降は再検証していないので参考程度

これらは、offline_access パラメータの廃止に関するドキュメントに書かれてある手順を試してみたものです。ですから、アプリの詳細設定の『移行』で Remove offline_access permission が on になっている必要があります。まだ アプリケーションから試したわけではありませんが、2時間限定のアクセスならば、APIキーのみでシークレットは必要とせずに Graph API にアクセスする事ができます。

※ graph.facebook.com/me/home でテストしました

2時間のアクセストークンだけならば、Windows8(C#) の WebView でテストして動作しています。WebView の URL の取得は以下のようにして処理しています。
( イベントで取り出すのがセオリーですが、この方法はいろいろな場面で利用可能なので )
// 取得した文字列から、任意の処理で
// アクセストークンを取り出します
string url = (webView.InvokeScript("eval", new String[] { "(function(){return location.href})();" })).ToString();
関連する Facebook ドキュメント

Extended Permissions




タグ:Facebook Windows8 C#
【APIの最新記事】
posted by lightbox at 2013-12-07 18:57 | API | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり