我正在使用以下 API 来获取长期用户访问令牌
https://graph.facebook.com/v8.0/oauth/access_token.
这个长期令牌将在 60 天后过期,但我们可以在 60 天之前更新它(根据 Facebook 文档)。
所以我尝试了这个API来获取代码https://graph.facebook.com/v8.0/oauth/client_code
然后使用上述 API 返回的代码通过以下 API 接收新的长期访问令牌 - https://graph.facebook.com/v8.0/oauth/access_token
但是当我在 Access Token Debugger 中检查新收到的令牌时,其过期时间与之前/旧令牌的过期时间完全相同。
因此用于查看长期用户访问令牌的 Facebook API 无法正常工作。不明白我是否在这里遗漏了一些东西或什么?
提前致谢
我遇到了同样的问题,也提到了here。
正如文档中所述,我尝试了fb_exchange_token
资助类型,以及
client_code
,但没有成功。这两种方法都给了我一个新令牌,但其到期时间与原始用户访问令牌相同。我不明白生成新令牌(如果它同时过期)有多大用处,但我怀疑这与基于同意的用户访问令牌的性质有关。我认为 Facebook 希望用户同意每个新令牌,因为它强调用短期令牌交换长期令牌,而短期令牌只能通过网络登录生成。我希望对此有更好的记录,因为我在他们的文档中没有看到任何具体提及此行为。我需要一个 S2S 解决方案,因此同意屏幕实际上是不可能的,但正如
Tobi 所提到的:
通常情况下,重定向时不需要用户执行任何操作 您不请求更多权限。因此,如果您的应用程序公开了重定向端点,那么非交互式解决方案仍然是可能的。另一个解决方案可能是探索“系统用户访问令牌”,我还没有,但计划将来研究这个,因为它们似乎永远不会过期。希望这对某人有帮助!