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 调用获取用户帐户(页面)描述?