FacebookのOAuth AccessTokenについて
Facebook GraphAPIを使用するにはAccessTokenが必要です。
AccessTokenの有効期限はデフォルトで2時間、延長用のAPIを使用すると、有効期限が2ヶ月のAccessTokenを取得できます。
AccessToken取得用API
codeの取得
https://graph.facebook.com/oauth/authorize
?client_id=APPLICATION_ID
&redirect_uri=REDIRECT_URI
&scope=SCOPE
APPLICATION_IDには、GraphAPIにアクセスするアプリのIDを、
scopeには必要なSCOPEをCSVで指定します。
scopeについて:https://developers.facebook.com/docs/authentication/permissions/
このAPIにブラウザからアクセスすると、REDIRECT_URIにcodeというパラメータ付きでリダイレクトされます。
AccessTokenの取得にcodeを使用します。
有効期限が2時間のAccessTokenを取得
https://graph.facebook.com/oauth/access_token
?client_id=APPLICATION_ID
&client_secret=APPLICATION_SECRET
&redirect_uri=REDIRECT_URI
&code=/oauth/authorizeにて取得したcode
APPLICATION_ID,APPLICATION_SECRETにはGraphAPIにアクセスするアプリのIDとSECRETを、
codeには/oauth/authorize APIにて取得したcodeを指定します。
このAPIにWebアクセスすると、Response BodyにAccessTokenが返ってきます。
有効期限が2ヶ月のAccessTokenを取得
https://graph.facebook.com/oauth/access_token
?client_id=APPLICATION_ID
&client_secret=APPLICATION_SECRET
&grant_type=fb_exchange_token
&fb_exchange_token=有効期限が2時間のAccessToken
上記APIにて、AccessTokenの有効期限を延長できます。
有効期限が2時間のAccessToken取得時と同様に、Response Bodyに有効期限が2ヶ月のAccessTokenが返ってきます。
AccessToken取得用プログラム
https://gist.github.com/4617012
$client_id,$client_secret,$redirect_uriに適切な値をセットしてWebサーバ上に設置し、
ブラウザからアクセスすると、有効期限が2ヶ月のAccessTokenを取得できます。
AccessTokenの有効期限を確認
https://developers.facebook.com/tools/debug
上記ツールにて、AccessTokenの有効期限を確認できます。
AccessTokenの有効期限について
記事冒頭にて、AccessTokenの有効期限はデフォルトで2時間、延長して2ヶ月と書きましたが、
AccessTokenが無期限になるような条件もあるようです。
http://developers.facebook.com/docs/howtos/login/extending-tokens/
上記URLのページの「Extending Page Access Tokens」を参照
下の画像のように、Expires: Never となります