OAuthAccessTokenException-提供的access_token是无效的Instagram新API

时间:2019-11-26 13:42:22

标签: android instagram instagram-api instagram-graph-api

我正在将Instagram登录信息集成到我的应用程序中。按照下面的链接中提供的文档: https://www.instagram.com/developer/authentication/

要获取代码,请点击API:

https://api.instagram.com/oauth/authorize?app_id="your app_id"&redirect_uri=https://www.google.com/&scope=user_profile,user_media&response_type=code

在网络视图中点击上述API后,我得到了下面带有代码的新URL:

http://www.google.com/?code=AQCPw4m0jd85IX7Qi83rd-pxsFKDE8Bjb0kZ2pWZ8sarcPlNyaZXwzE1yHHqfVIgDej_ZPYrTh6_BaIafsOWsTZNJbWFDiXsQPTEZHvFBojQ5F91SBSykqjUkG0U1OS6nFyAcwNq-FsbpmBtIPcp45qNXV5_avgCCpBzG-Hndp6JiRbaF2uSgUiOep5-Uu0Ks8DiwVs_7zAfuMasJJ7PAK1gfRDNVOPC-XBYqfdPU1VlkA

在此示例中,我的代码是

  

AQCPw4m0jd85IX7Qi83rd-pxsFKDE8Bjb0kZ2pWZ8sarcPlNyaZXwzE1yHHqfVIgDej_ZPYrTh6_BaIafsOWsTZNJbWFDiXsQPTEZHvFBojQ5F91SBSykqjUkG0U1OS6nFyAcwNq-FsbpmBtIPcp45qNXV5_avgCCpBzG-Hndp6JiRbaF2uSgUiOep5-Uu0Ks8DiwVs_7zAfuMasJJ7PAK1gfRDNVOPC-XBYqfdPU1VlkA

我在下面的access_token请求中使用它:

https://api.instagram.com/oauth/access_token?
app_id="YOUR APP ID"
&app_secret="YOUR SECRET KEY"
&grant_type=authorization_code
&redirect_uri=https%3A%2F%2Fwww.google.com%2F
&code=AQCPw4m0jd85IX7Qi83rd-pxsFKDE8Bjb0kZ2pWZ8sarcPlNyaZXwzE1yHHqfVIgDej_ZPYrTh6_BaIafsOWsTZNJbWFDiXsQPTEZHvFBojQ5F91SBSykqjUkG0U1OS6nFyAcwNq-FsbpmBtIPcp45qNXV5_avgCCpBzG-Hndp6JiRbaF2uSgUiOep5-Uu0Ks8DiwVs_7zAfuMasJJ7PAK1gfRDNVOPC-XBYqfdPU1VlkA

以上api命中的响应:

{
    "access_token": "IGQVJVT2hod1dEN3N0UnBwTWllb3pZAaENnS0VveHZARSkNwLVpwS2Uxc0w2VUVOeEJxaUdkMnlQRkdzVGJudnh0cXREZA3BvWHNELTR1UndsOWR2MXFST0JlUG45TEdFVnhiblhScVNlYlJtLUNwQU5Kc2ltZAy1LUlRMaF9ZA",
    "user_id": 17841406439718884
}

现在,为了获取用户个人资料数据,我正在使用[link] [1]中提到的access_token来访问贝娄api:

Api命中:

https://api.instagram.com/v1/users/self/?access_token=” +访问令牌

但是在此api中,我遇到了错误消息:

{
    "meta": {
        "code": 400,
        "error_type": "OAuthAccessTokenException",
        "error_message": "The access_token provided is invalid."
    }
}

请让我知道如何以编程方式获取有效的accessToken,如果您仍然需要任何进一步校准的内容,我会明确提及我遵循的每个步骤,我也将为您提供!

我已遵循此链接中建议的每一个步骤

https://developers.facebook.com/docs/instagram-basic-display-api/guides/getting-access-tokens-and-permissions

2 个答案:

答案 0 :(得分:3)

Facebook记录得很差,这使工作变得非常困难。我将按照步骤进行操作,以使您所受的痛苦不像我那么重...

{
    "access_token": "IGQVJVT2hod1dEN3N0UnBwTWllb3pZAaENnS0VveHZARSkNwLVpwS2Uxc0w2VUVOeEJxaUdkMnlQRkdzVGJudnh0cXREZA3BvWHNELTR1UndsOWR2MXFST0JlUG45TEdFVnhiblhScVNlYlJtLUNwQU5Kc2ltZAy1LUlRMaF9ZA",
    "user_id": 17841406439718884
}

这是一个短暂的令牌,将在1小时后过期;因此,您应该使用它来生成长期令牌。在过期之前:为此使用邮递员中的那条链接

 "https://graph.instagram.com/access_token
  ?grant_type=ig_exchange_token
  &client_secret={instagram-app-secret}
  &access_token={short-lived-access-token}"

然后您将得到答复

{
  "access_token":"{long-lived-user-access-token}",
  "token_type": "bearer",
  "expires_in": 5183944  // Number of seconds until token expires
}

这是您的长期访问令牌,它显示有效期为60天。 然后,您应该使用请求lin

GET https://graph.instagram.com/{media-id}
  ?fields=id,caption,username,
  &access_token={access-token}// Long Lived token

请访问其网站以获取更多数据查询:https://developers.facebook.com/docs/instagram-basic-display-api/reference/user#fields

我希望可以帮助您解决问题。我正在编写一个片段代码以在60天到期之前刷新长寿命令牌。完成后,我也会与您分享

答案 1 :(得分:-2)

请检查您的令牌ID,然后执行