我刚刚发现了如何做到这一点并在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}
您在developers.facebook.com 中的应用程序仪表板上的信息在哪里{app-id}
,是您刚刚找到的“用户令牌”。{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/