Posted at

[Facebook Graph API]無期限のアクセストークンの取得方法

More than 1 year has passed since last update.

フェイスブックのパスワード変更したら、かつて取得したアクセストークンがダメになってしまい、再取得しようとしたら、ハマってしまいました(泣き)。そもそも元のアクセストークンの取得の時も四苦八苦したので、個人的メモとして。


アプリの認証

https://www.facebook.com/dialog/oauth?client_id={アプリID}&redirect_uri={サイトURL}


  • client_idは、ダッシュボードに記載のアプリID

  • redirect_uriは、設定>ベーシックのウェブページに記載のサイトURL


    • ただし、Facebookログインの有効なOAuthリダイレクトURIにドメインを登録
      上記設定は→facebook for developersより



ブラウザで上記URLにアクセスすると、redirect_uriに飛ばされます。上のurlのクエリ部分にcode=XXXXXとの記載があり、それが、認証コードになります。


(ユーザー)アクセストークンの取得

https://graph.facebook.com/oauth/access_token?client_id={アプリID}&redirect_uri={サイトURL} &client_secret={app secret}&code={XXXXX}


  • client_secretは、ダッシュボード記載のapp secret

  • codeは、アプリの認証で取得したXXXXXになります

再びブラウザでアクセスすると、



{"access_token":"YYYYYY","token_type":"bearer"}



が返ってきます。

** "access_token":"YYYYYY"**が(ユーザー)アクセストークンになります。


ページのアクセストークンの取得

https://graph.facebook.com/me/accounts?access_token={YYYYYY}

上記にアクセスすると、下記のような管理するFacebookページの一覧が返されます。

{

"data": [
{
"access_token": "ZZZZZ",
"category": "hogehoge",
"name": "hogehoge",
"id": "11111111111111111",
"perms": [
"EDIT_PROFILE",
"CREATE_CONTENT",
"MODERATE_CONTENT",
"CREATE_ADS",
"BASIC_ADMIN"
]
}
],
"paging": {
"cursors": {
"before": "munyamunya",
"after": "suyasuya"
}
}
}

"access_token": "ZZZZZ"が、ページのアクセストークンになります。


有効期限を確認

アクセストークンデバッガーの、「アクセストークン」というタブを開き、上記取得のアクセストークンを貼り付け→デバッグを押すと、アクセストークン情報が表示されます。有効期限が「受け取らない」となっていれば、成功です。


参考サイト