有什么方法可以使用图形 api 找出页面访问令牌或应用程序令牌何时到期?
6 回答
更新:有一个新的 API 端点可以访问有关访问令牌的信息。您可以在此处找到信息:调试访问令牌和处理错误
https://graph.facebook.com/debug_token?input_token=INPUT_TOKEN&access_token=ACCESS_TOKEN
- input_token:要调试的访问令牌
- access_token:您的应用访问令牌或来自应用开发者的有效用户访问令牌。
--
您应该尝试确保在获取每个令牌时将其与访问令牌一起存储。对于页面访问令牌,这意味着存储用户访问令牌的到期时间。如果您想手动发现您今天拥有的令牌的到期时间,您应该使用 Facebook 的Access Token Debugger工具。但是,您不应该只依赖到期时间——实际上,许多令牌的到期时间会比其到期时间早得多。
应用程序访问令牌永远不会过期,除非应用程序密钥被重置。
页面访问令牌的持续时间长达 60 天(5184000 秒),但更重要的是,它们的持续时间与用于获取它们的用户访问令牌一样长。因此,一旦您从以下用户那里获得它们,它们就会失效:
- 退出FB。
- 更改密码。
- 取消对您的应用程序的授权。
基本上,当您丢失用户的令牌时,您将丢失页面的令牌。相反,您应该为每个用户访问令牌检索一次页面访问令牌。如果您丢弃用户访问令牌,请丢弃页面令牌。您不应尝试在任何重要时间段内存储页面访问令牌。相反,您应该根据需要获取它们,并在用户会话结束时忘记它们。
要获取新的页面访问令牌:
https://graph.facebook.com/PAGEID?fields=access_token&access_token=USER_ACCESS_TOKEN
访问令牌调试器
https://developers.facebook.com/tools/debug/access_token
不使用 Graph API……但对于手动调试来说是一个非常有用的工具。
现在有一个 API 版本的调试器工具。
请参阅https://developers.facebook.com/docs/authentication/access-token-debug/
我想针对当前版本的 API 重复这个问题,因为我遇到了 Facebook 文档明确没有描述正在发生的事情的情况:
- 请求新的长寿命令牌时没有到期日期
fb_exchange_token
- 请求 debug_token 信息时没有到期日期 (
expires_at = 0
) - 第一次将用户重定向到身份验证页面时,它会回复到期日期,但这无济于事,因为我无法提取长期有效的到期日期,也不会第二次回复此信息
这里的调试工具:https ://developers.facebook.com/tools/debug/accesstoken说“过期:从不”。
试试这个,它对我有用。使用您的应用获取令牌并将其粘贴到图形资源管理器中作为用于查询的令牌。单击信息以查看到期日期。 示例图像
我希望它也适合你。
https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension
从上面的页面:
网络上的访问令牌通常有大约两个小时的生命周期,但会在需要时自动刷新。如果您想将访问令牌用于长期存在的 Web 应用程序,尤其是服务器端,则需要生成一个长期存在的令牌。长寿命令牌通常持续约 60 天。