问题描述
尝试通过此端点刷新我的长期访问令牌:
不断收到错误:OAuth "Facebook Platform" "invalid_token" "Invalid OAuth access token."
但是,我使用 https://developers.facebook.com/tools/debug/accesstoken/ 调试了我的令牌,这表明它是有效的,并且持续了大约 2 个月(这证明它是一个长期存在的访问令牌)。
这个端点是否不再工作了,还是我遗漏了什么?
附言我正在使用用户访问令牌,它是一个由 Facebook 页面支持的公共 Instagram 商业帐户。另外,我在服务器上使用它,因此如果令牌在 60 天内使用,它不会刷新(这就是您通过 FB 移动 sdk 进行身份验证时发生的情况)。
编辑
所以看起来我错过了两个要求:
无论如何
我试过了:
- 奇怪的是,每当我将该权限/范围添加到列表中时,Facebook 登录总是失败并显示“有问题”。我尝试使用 facebook login react npm package、manual login flow 和 FB SDK login button 仅发出请求,结果都是一样的。
- Facebook Graph API Explorer 不包含此权限。但是,他们拥有的 list of permissions 确实包含它。
那么这意味着什么,Facebook 不允许刷新长期存在的令牌?
注意:有关如何刷新长期访问令牌的文档适用于基本显示 API,不建议将其用于企业帐户(即谁将使用我的应用程序)。所以这让我更加不确定是否可以为 Instagram Graph API 刷新令牌。
更多信息
因此,在 FB 开发者门户上,如果您将 Instagram Basic display 产品添加到您的应用程序(我以前没有),它允许您请求 instagram_graph_user_profile
权限。但是,这带来了更多问题:
- 我是否必须使用 Insta Graph API + Insta Basic display 才能获得可刷新的长寿命访问令牌?
- 如果是这样,它是如何工作的?因为 Insta Basic display 推荐用于个人帐户,Graph API 用于企业帐户。
- 如果是这样,我该如何添加
instagram_graph_user_profile
权限?还是导致FB登录失败。
解决方法
所以我最终联系了几家我知道的公司,他们确实按照我的意愿去做,他们确认 Facebook 确实要求用户在大约 60 天后重新授权。
如果不这样做,长期访问令牌将过期。