这个主题是非常难以谷歌,因为一些不幸的术语的选择,所以这里有一个快速的澄清之前,我问我的问题:如何让Facebook _Account_(即页面)访问令牌永不过期?
Facebook账户(即一个人的顶层,个人帐户)可以有子账户(公司,品牌,名人等),Facebook不幸称之为“账户”。与这些“帐户”交互的端点位于[用户ID] /帐户。对于这个问题的目的,我将把这些作为“子账户”
FACEBOOK报表&实际观察:
的Facebook,在这个岗位(https://developers.facebook.com/roadmap/offline-access-removal/),说几件事情:
,有两种类型的access_tokens的:似乎真:实际观察“而短命用户access_tokens目前从1至2小时的有效长寿命的用户会的access_token的有效期为60天”。我的应用程序只在服务器端,所以我不能确认短的类型。
“如果从服务器端的OAuth调用生成的的access_token,所产生的access_token将默认较长的到期时间” 实际观察:我的服务器端应用程序不会产生较长,60天到期。
“当从... https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN请求延长...的access_token如果传递的是的access_token有一个长寿命到期时,端点将简单地传递同样的access_token回你不改变或延长有效期时间“实际观察:对我来说这不是真的。当我通过原始的60天令牌时,我得到了一个不同的令牌。此外,新的,不同的令牌根本不起作用。 FB端点尝试使用时会返回认证失败。
“当一个用户授予应用程序的权限manage_pages,应用程序能够获得页面访问令牌的用户负责管理通过查询[用户名]页/账户......通过使用长寿命的用户访问令牌,查询[用户ID] /帐户端点现在将提供不会过期的页面访问令牌。“ 实际观察:我的应用程序检索到的令牌(使用原始根,60天令牌)将在60天后过期,当它们应该是无限的。每#3,我不能尝试与新的,不同的(据推测扩展)访问令牌,因为它是无效的。
问题:
我的服务器端请求产生的有效期为60天的令牌。请求扩展标记应该回显相同的标记,但不是。为什么不?
我回来的新的,不同的令牌根本不起作用。为什么不?
如果我的应用获得的原始访问令牌是60天长的类型,那么我用它们检索到的PAGE访问令牌应该是不过期的。但他们确实到期。为什么?
任何帮助将非常感谢!
给管理员的注意事项:在禁用这个问题之前,如果没有足够的“代码导向”,Facebook会将所有问题都指向Stack Exchange。 https://developers.facebook.com/support/如果我不能在这里问这个问题,那我会问这个问题?
UPDATE:检查令牌的有效性的官方支持的方式是 如下:
graph.facebook.com/debug_token? input_token={token-to-inspect} &access_token={app-token-or-admin-token}
当我用这个方法,应用程序令牌我已经得到了我的用户应该显示“0”的到期。所以我猜他们是无限的。我不可能知道,直到60天过去了,FB是否用“过期”来说实话:0;
你有没有搞清楚,如果页面级别的令牌会过期吗? Facebook的api文档建议,但它不是100%清楚 – NullReference
我认为“更新”部分的伎俩。我的应用程序不再活动,所以我不能肯定地说,但我认为它们没有过期。 – fivedogit