Facebook 页面 (/me/accounts) access_token 过期了吗?

Posted

技术标签:

【中文标题】Facebook 页面 (/me/accounts) access_token 过期了吗?【英文标题】:Facebook Pages (/me/accounts) access_token Expiration? 【发布时间】:2012-03-03 09:20:52 【问题描述】:

请耐心等待,我知道access_token 的问题已经被问了一千次,但我似乎找不到这个特定问题的答案。

Facebook 主页(不是应用程序,不是用户)访问令牌是否有过期日期?

我知道:

offline_access 已被弃用。 我可以申请一个60天的用户access_token

第 1 步:我使用 Facebook Connect 并获得了一个 用户 access_token,它拥有 manage_pages 权限(默认情况下,此令牌在 2 小时后过期,可延长至 60 天)

第 2 步:然后我调用 /me/accounts 并获取一组用户页面,每个页面都有一个列出的页面 access_token

第 3 步:我可以在随后的 API 调用中使用 页面 access_token 来执行诸如发布到用户页面之类的操作。

我需要用户能够安排页面更新在未来发生(当他们不在线时)。

所以问题又是:

/me/accounts返回的页面access_token的到期日期是多少?

如果到期日期与某事有关,那么它与什么有关?

请求/me/accounts 时使用的用户 access_token 的到期日期? 向/me/accounts提出请求后的60天?

对于我的困惑,我深表歉意,Facebook 文档在描述这些访问令牌方面似乎非常不足。

【问题讨论】:

【参考方案1】:

我刚刚创建了一个全新的应用程序。确保启用了已弃用的脱机访问。去资源管理器,在下拉列表中找到我的新应用程序,授予自己 manage_pages,去我/帐户获取页面访问令牌之一,然后对其进行 linted。哇! 1 小时到期。

编辑

我尝试交换那个 1 小时的页面令牌,但我收到了来自 fb 的错误。

我回到了用户访问令牌,并用它换了一个 60 天的令牌。在 linter 中验证这是 60 天。回到我/帐户并抓住其中一个页面访问令牌并对其进行检查。惊喜!从那里获得了 60 天的令牌。

所以这个故事的寓意是,你不能交换页面令牌,只能交换用户令牌。但是使用 60 天的用户令牌,您可以获得 60 天的页面令牌。 :)

【讨论】:

天才!你对 Facebook 的工具了如指掌。谢谢! 后续问题:有没有办法从graph api获取Facebook的Linter返回的数据?例如。通过点击graph.facebook.com/oauth/TOKEN 或其他方式? 我知道me/permissions 可以获取当前访问令牌的权限列表,但它不包含任何过期信息。如果我遇到什么...我会回来报告这里。 我猜下一个问题是,能否从该页面访问令牌中获取 60 天令牌? 太棒了!非常感谢您的跟进!

以上是关于Facebook 页面 (/me/accounts) access_token 过期了吗?的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Graph API me / accounts返回空的Json数据数组

如何使用一个 Facebook API 调用获取用户帐户(页面)描述?

如何通过 CREATE_CONTENT 权限过滤 Facebook 页面?

为新创建的页面管理员用户检索页面返回空

如何从包含所有喜欢和评论的页面中获取所有帖子?

是否仍然可以使用 Graph API 作为页面发布到粉丝页面?