Facebook昨天向我发送了警报:
“ 作为改善我们平台整体隐私的持续更改的一部分,我们最近对平台条款和开发者政策进行了更改。我们还针对使用Instagram基本显示的应用访问令牌刷新进行了更改API。
自2020年8月31日起,使用Instagram基本显示API的开发人员将不再能够继续访问私有Instagram帐户信息,而无需获得该帐户的重新授权。调用GET / refresh_access_token API终结点的应用在为私有Instagram帐户调用终结点时将不会收到刷新的访问令牌。
此更改将要求私有Instagram帐户至少每60天重新授权一次,以便开发人员能够使用Instagram Basic Display API继续访问其当前数据。此项更改仅适用于Instagram私人帐户;使用此API终结点的公共Instagram帐户对数据的访问将保持不变。“
因此,根据我的理解,对于私人帐户,如果其访问令牌已过期,我将无法再使用API GET /refresh_access_token
刷新令牌,但必须从头开始重新授权令牌。
在这种情况下,如何检查用户的Instagram帐户是公共帐户还是私人帐户?我没有在Instagram Basic Display API文档中找到与此相关的任何内容;也许我错过了某件事...
如果有人能对此事向我阐明,我将不胜感激。
答案 0 :(得分:3)
由于我不知道如何识别帐户是公共帐户还是私人帐户,因此我仅将API GET /refresh_access_token
应用于所有帐户。对于公共帐户,它工作正常,但对于私人帐户,它将返回一个错误对象:
{
"error": {
"message": "Application does not have permission for this action",
"type": "OAuthException",
"code": 10,
"error_subcode": 2207054,
"is_transient": false,
"error_user_title": "Permission Denied",
"error_user_msg": "You cannot refresh access tokens for Instagram private accounts. To generate a new access token, reauthorize the user as documented here https://developers.facebook.com/docs/instagram-basic-display-api/guides/getting-access-tokens-and-permissions\"",
"fbtrace_id": "#####"
}
}
因此,一旦识别出私人帐户,就可以轻松对其进行重新授权。