按照Facebook扩展页面令牌文档中列出的说明,我能够获得一个不会过期的页面访问令牌。
我建议使用Graph API Explorer完成所有这些步骤,除非另有说明。
0. 创建Facebook应用
如果你已经有一个应用程序,跳到第一步。
进入我的应用程序。
点击“+添加新应用”。
建立一个网站应用程序。
你不需要改变它的权限之类的。你只需要一个应用程序,在你完成访问令牌之前不会消失。
1. 获取用户短期访问令牌
转到图形API资源管理器。
选择你想要获取访问令牌的应用程序(在“应用程序”下拉菜单中,而不是“我的应用程序”菜单中)。
点击“获取令牌”>“获取用户接入令牌”。
在弹出的“扩展权限”选项卡下,选中“manage_pages”。
点击“获取访问令牌”。
授予具有管理目标页面权限的Facebook帐户的访问权限。请注意,如果该用户失去访问权限,最终的、永不过期的访问令牌可能会停止工作。
出现在“访问令牌”字段中的令牌是您的短期访问令牌。
2. 生成长期访问令牌
按照Facebook文档中的这些说明,向
https://graph.facebook.com/v2.10/oauth/access_token?grant_type=fb_exchange_token&client_id= {app_id} client_secret = {app_secret} &fb_exchange_token = {short_lived_token}
输入应用程序的ID和secret以及在前一步中生成的短期令牌。
不能使用图形API资源管理器。由于某种原因,它在这个请求上卡住了。我认为这是因为响应不是JSON,而是一个查询字符串。因为它是一个GET请求,所以您可以直接在浏览器中访问URL。
响应应该是这样的:
{“access_token”:“ABC123”,“token_type”:“持票人”、“expires_in”:5183791}
“ABC123”将是您的长期访问令牌。您可以将其放入访问令牌调试器中进行验证。在“Expires”下面应该有类似“2个月”的内容。
3.获取用户ID
使用长期访问令牌,向
https://graph.facebook.com/v2.10/me?access_token= {long_lived_access_token}
id字段是您的帐户id。下一步将需要它。
4. 获取永久页面访问令牌
发出GET请求
https://graph.facebook.com/v2.10/ {account_id} /账户? access_token = {long_lived_access_token}
JSON响应应该有一个数据字段,下面是用户可以访问的项的数组。找到要从中获得永久访问令牌的页面的项。access_token字段应该有您的永久访问令牌。复制它并在访问令牌调试器中测试它。在“过期”下面应该显示“永不”。