Facebook:永久页面访问 token ?

标签 facebook facebook-graph-api facebook-access-token

我从事的项目将 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 步。

  1. 转到 My Apps .
  2. 点击“+ 添加新应用”。
  3. 设置网站应用。

您无需更改其权限或任何内容。您只需要一个在您使用完访问 token 之前不会消失的应用程序。

1。获取用户短期访问 token

  1. 转到 Graph API Explorer .
  2. 选择您要为其获取访问 token 的应用程序(在“应用程序”下拉菜单中,而不是“我的应用程序”菜单中)。
  3. 点击“获取 token ”>“获取用户访问 token ”。
  4. 在弹出窗口的“扩展权限”选项卡下,选中“manage_pages”。
  5. 点击“获取访问 token ”。
  6. 从有权管理目标页面的 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/

相关文章:

facebook - 通过 Facebook API v2.2 查询附近的公共(public)事件

facebook - 如何获得用户从 facebook api 发布的感觉或事件

php - Facebook 登录 : Which parameter should my app identify the user with? id,或电子邮件?

facebook - 如何在不使用 appId 和 secret 的情况下检查访问 token 是否有效?

facebook - Facebook 如何将访问 token 与消费应用程序相匹配

Facebook 访问 token 扩展 - "The access token does not belong to application xxx"

facebook - FBSDKAppInviteContent 提示登录

ios - 使用 PFFFacebookUtilsV4 Cocoapods 在 Swift 中获取 Facebook 用户详细信息

javascript - 如何使用 JavaScript 授权 Facebook 应用程序

android - 从 Facebook 公共(public)页面 Android 获取页面提要