【问题标题】:Getting offline updates using access_token使用 access_token 获取离线更新
【发布时间】:2013-01-11 06:46:18
【问题描述】:

我正在构建应用程序,它将为 Facebook 用户提供新的过滤器。为了让这些过滤器起作用,我需要(从他的墙上)获取用户帖子,所以我设法让他们通过他们的 Facebook 帐户登录,并且我正在存储他们的 access_token 以便在实时更新到来时获取更新。

问题是 - 当用户浏览我的页面时,每个请求都允许我进行一次 Graph API 调用(用户授予我的应用程序权限),但是当我尝试进行第二次调用时(而用户是,即阅读他最好的朋友的帖子)即使我提供了有效的 access_token,Graph API 也仅返回有关此用户的公开信息。

有什么办法可以解决这个问题吗?我正在拨打的电话示例:

/1198448946?access_token=token

令牌可以检查用户的电子邮件(我获得了所需的权限),但响应被删除了。当我尝试在 Graph API Explorer 中使用相同的 URI 时 - 它返回了我想要的响应(使用相同的 access_token!),但应用程序仍然只显示公共信息。

【问题讨论】:

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


    【解决方案1】:

    您需要做的第一件事是阅读以下内容:

    https://developers.facebook.com/roadmap/offline-access-removal/

    简短的回答是,您默认收到的令牌将是短暂的(1-2 小时)。 Facebook 已取消离线访问权限,但您现在可以将短寿命令牌换成长寿命令牌(60 天)。您每次访问您的网站时更新此令牌以获得另外 60 天。

    此资源应该可以帮助您了解访问令牌过期的原因。它还记录了在用户在场时检测到过期令牌时应采取的正确步骤。 https://developers.facebook.com/docs/howtos/login/debugging-access-tokens/

    【讨论】:

    • 谢谢,您提供的第二个链接很有帮助。完整的答案是 Facebook 错误地描述了一些选项 - 我在我的应用程序中保存了应用程序密码和访问令牌,因此我在“客户端应用程序密码”上选择了“桌面/本机应用程序”和“是”。工作选项是:“Web 应用程序”和将短期访问令牌交换为长期活动。
    • 好。如果他们决定将 API 稳定 5 分钟,他们也许能够赶上文档。 ;)
    猜你喜欢
    • 2016-08-22
    • 2017-05-12
    • 2015-01-24
    • 2013-09-17
    • 2012-01-11
    • 2013-07-28
    • 2012-09-02
    • 2016-04-24
    • 2018-11-28
    相关资源
    最近更新 更多