私はこれを行う方法を見つけて、質問に答えるためにstackoverflowを検索しました:)
まず、拡張アクセス トークンを要求する必要があるのはユーザーではなく、あなたです。独自のユーザーのアクセス トークンを拡張する必要があります。ユーザーのアクセス トークンは、https://developers.facebook.com/tools/accesstoken/の「ユーザー トークン」という名前で確認できます。
次のステップは、このリクエストを作成して、このトークンの寿命を延ばすことです:
GET /oauth/access_token?
grant_type=fb_exchange_token&
client_id={app-id}&
client_secret={app-secret}&
fb_exchange_token={short-lived-token}
{app-id}
とは、 developers.facebook.com{app-secret}
のアプリケーションのダッシュボードにある情報であり、{short-lived-token}
は、今見つけた「ユーザー トークン」です。
php SDK を介してこの呼び出しを行う必要はありません。ページをリクエストするようにブラウザーを使用するだけですgraph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id={app-id}&client_secret={app-secret}&fb_exchange_token={short-lived-token}
(注: の形式で値が返されますaccess_token={access-token}&expires={seconds}
。したがって、すべてをコピーしないでください。)
これで、この拡張ユーザー トークンを使用してページ アクセス トークンを取得すると、それは不滅になります。新しいトークンを使用してこの API 呼び出しを行います (注: 呼び出しを行う前に、この呼び出しを行うための権限「manage_pages」と、後でページに投稿するための権限「publish_actions」を付与する必要があります。これを行う最も簡単な方法は、https://developers.facebook.com/tools/explorer/の「アクセス トークンを取得」ボタンをクリックして、付与する必要があるアクセス許可は「拡張アクセス許可」タブの下にあります。):
GET /me/accounts
ページのリストとその情報の一部を、それぞれのアクセス トークンとともに取得します。
これらのアクセス トークンには有効期限がありません。https://developers.facebook.com/tools/debug/で確認できます。