javascript - 刷新长寿命访问令牌端点是否在 2021 年工作?
问题描述
尝试通过此端点刷新我的长期访问令牌:
不断收到错误:OAuth "Facebook Platform" "invalid_token" "Invalid OAuth access token."
但是,我使用https://developers.facebook.com/tools/debug/accesstoken/调试我的令牌,这表明它是有效的并且大约 2 个月(这证明它是一个长期存在的访问令牌)。
这个端点不再工作还是我错过了什么?
PS 我正在使用用户访问令牌,它是一个由 Facebook 页面支持的公共 Instagram 商业帐户。另外,我在服务器上使用它,因此如果令牌在 60 天内使用,它不会刷新(这就是您通过 FB 移动 sdk 进行身份验证时发生的情况)。
编辑
所以看起来我错过了两个要求:
- 您的长期访问令牌必须至少存在 24 小时才能刷新
- 将用户登录到 Facebook 时,您需要“instagram_graph_user_profile”权限/范围
然而
我试过:
- 奇怪的是,每当我将该权限/范围添加到列表中时,Facebook 登录总是失败并说“出了点问题”。我使用facebook login react npm package尝试了这个,只需发出请求的手动登录流程和FB SDK login button,结果都是一样的。
- Facebook Graph API Explorer 不包含此权限。但是,他们拥有的权限列表确实包括它。
那么这意味着什么,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 天后重新授权。
如果他们不这样做,长期访问令牌将过期。
推荐阅读
- python - 来自任意数量的嵌套列表的元素的平均值
- python - How to make vscode work with playsound module?
- apache - How to set Caddy as a reverse proxy for apache
- javascript - 将nodejs中的字符串解析为数组
- python - Numpy 的分区函数是如何工作的?
- python - 带有seaborn的多个箱线图,但不在同一框架内
- android - 当我在适配器中调用编辑项目时,为什么我的 recyclerview 项目克隆?
- angular - RxJS 多主题订阅少 vs 单主题多订阅
- webgl - webgl 的变化没有按预期工作
- .htaccess - 单个页面的手动重写规则,然后是其他页面的包罗万象