【问题标题】:OAuthAccessTokenException-The access_token provided is invalid Instagram new apiOAuthAccessTokenException - 提供的 access_token 无效 Instagram 新 api
【发布时间】:2020-03-21 22:52:38
【问题描述】:

我正在将 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

在 web-view 中点击上述 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 P>

我在下面的 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="+accesstoken

但在这个 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

【问题讨论】:

  • 您正在使用旧 API 的访问令牌和新的基本显示 API。那是行不通的。对于旧 API,令牌似乎随机过期,因此无法获得永久或长期存在的令牌。对于新的 Basic Display API,令牌会在 2 小时后过期。
  • 停止使用 Instagram API 获取自我详细信息。使用 Facebook 图形 API。 Instagram API 已全部弃用。它将在 2020 年初完全停止。请参阅instagram.com/developer
  • @hermanschutte 你能得到 access_token 吗?我总是收到一条消息说“代码不存在或已被使用”
  • @ShaharyarKirmani,在开发者控制台中提供安全的重定向 URL。
  • 您确定您设备中安装的 Instagram 应用是最新的吗?

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


【解决方案1】:

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 天到期之前刷新长期存在的令牌。完成后我也会分享的

【讨论】:

  • 这应该作为令牌扩展器工作:graph.instagram.com/…{YOUR_LONG_LIVE_TOKEN} 但我总是得到:“无效的 OAuth 访问令牌”为什么?我使用了一个正在生产中工作的令牌。
猜你喜欢
  • 1970-01-01
  • 2016-10-03
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多