首页 > 解决方案 > 刷新长寿命访问令牌端点是否在 2021 年工作?

问题描述

尝试通过此端点刷新我的长期访问令牌:

https://developers.facebook.com/docs/instagram-basic-display-api/guides/long-lived-access-tokens#refresh-a-long-lived-token

不断收到错误:OAuth "Facebook Platform" "invalid_token" "Invalid OAuth access token."

但是,我使用https://developers.facebook.com/tools/debug/accesstoken/调试我的令牌,这表明它是有效的并且大约 2 个月(这证明它是一个长期存在的访问令牌)。

这个端点不再工作还是我错过了什么?

PS 我正在使用用户访问令牌,它是一个由 Facebook 页面支持的公共 Instagram 商业帐户。另外,我在服务器上使用它,因此如果令牌在 60 天内使用,它不会刷新(这就是您通过 FB 移动 sdk 进行身份验证时发生的情况)。

编辑

所以看起来我错过了两个要求:

  1. 您的长期访问令牌必须至少存在 24 小时才能刷新
  2. 将用户登录到 Facebook 时,您需要“instagram_graph_user_profile”权限/范围

然而

我试过:

  1. 奇怪的是,每当我将该权限/范围添加到列表中时,Facebook 登录总是失败并说“出了点问题”。我使用facebook login react npm package尝试了这个,只需发出请求的手动登录流程和FB SDK login button,结果都是一样的。
  2. Facebook Graph API Explorer 不包含此权限。但是,他们拥有的权限列表确实包括它。

那么这意味着什么,Facebook 不允许刷新长期存在的令牌?

注意:有关如何刷新长期访问令牌的文档适用于基本显示 API,不建议用于企业帐户(谁将使用我的应用程序)。所以这让我更加不确定是否可以为 Instagram Graph API 刷新令牌。

更多信息

因此,在 FB 开发者门户网站上,如果您将 Instagram Basic Display 产品添加到您的应用程序(我以前没有),它允许您请求instagram_graph_user_profile许可。然而,这带来了更多的问题:

  1. 我是否必须使用 Insta Graph API + Insta Basic Display 才能获得可刷新的长寿命访问令牌?
  2. 如果是这样,它是如何工作的?因为 Insta Basic Display 推荐用于个人账户,而 Graph API 用于企业账户。
  3. 如果是这样,我如何添加instagram_graph_user_profile权限?它仍然会导致 FB 登录失败。

标签: javascriptfacebook-graph-apiinstagram-apifacebook-access-tokeninstagram-graph-api

解决方案


所以我最终联系了几家我知道的公司做我想做的事情,他们确认 Facebook 确实要求用户在大约 60 天后重新授权。

如果他们不这样做,长期访问令牌将过期。


推荐阅读