我从事的项目将 Facebook 页面作为其数据源之一。它定期从中导入一些数据,不涉及 GUI。然后我们使用网络应用程序来显示我们已有的数据。
并非所有信息都是公开的。这意味着我必须访问一次数据然后保留它。但是,我不知道这个过程,而且我还没有找到一个好的教程。我想我需要一个access_token
,我怎样才能从用户那里一步一步地得到它?用户是 facebook 页面的管理员,他是否必须将我们的一些 FB 应用程序添加到页面?
编辑:感谢@phwd 的提示。我制作了一个教程如何获得永久页面访问 token ,即使 offline_access
不再存在。
编辑:我刚刚发现这里有答案:Long-lasting FB access-token for server to pull FB page info
最佳答案
按照 Facebook 的 extending page tokens documentation 中的说明进行操作我能够获得不会过期的页面访问 token 。
我建议使用 Graph API Explorer对于所有这些步骤,除非另有说明。
0。创建 Facebook 应用
如果您已有应用,请跳至第 1 步。
- 转到 My Apps .
- 点击“+ 添加新应用”。
- 设置网站应用。
您无需更改其权限或任何内容。您只需要一个在您使用完访问 token 之前不会消失的应用程序。
1。获取用户短期访问 token
- 转到 Graph API Explorer .
- 选择您要为其获取访问 token 的应用程序(在“应用程序”下拉菜单中,而不是“我的应用程序”菜单中)。
- 点击“获取 token ”>“获取用户访问 token ”。
- 在弹出窗口的“扩展权限”选项卡下,选中“manage_pages”。
- 点击“获取访问 token ”。
- 从有权管理目标页面的 Facebook 帐户授予访问权限。请注意,如果此用户失去访问权限,最终的、永不过期的访问 token 可能会停止工作。
出现在“访问 token ”字段中的 token 是您的短期访问 token 。
2。生成长期访问 token
正在关注 these instructions从 Facebook 文档中,向
发出 GET 请求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 和密码以及在上一步中生成的短期 token 。
您不能使用 Graph API Explorer。由于某种原因,它卡在了这个请求上。我认为这是因为响应不是 JSON,而是查询字符串。由于这是一个 GET 请求,您可以直接在浏览器中访问该 URL。
响应应该是这样的:
{"access_token":"ABC123","token_type":"bearer","expires_in":5183791}
“ABC123”将是您的长期访问 token 。您可以将其放入 Access Token Debugger核实。在“过期”下,它应该有类似“2 个月”的内容。
3。获取用户ID
使用长期访问 token ,向
发出 GET 请求https://graph.facebook.com/v2.10/me?access_token={long_lived_access_token}
id
字段是您的帐户 ID。下一步将需要它。
4。获取永久页面访问 token
发出 GET 请求
https://graph.facebook.com/v2.10/{account_id}/accounts?access_token={long_lived_access_token}
JSON 响应应该有一个 data
字段,在该字段下是用户有权访问的项目数组。找到您想要永久访问 token 的页面的项目。 access_token
字段应该包含您的永久访问 token 。复制它并在 Access Token Debugger 中测试它.在“过期”下,它应该说“从不”。
关于Facebook:永久页面访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17197970/