来自Instagram的错误:提供的access_token无效

时间:2018-03-01 18:26:54

标签: instagram instagram-api

我在一年前设置了一个网站,其中一个Instagram提要显示网站上的帐户图像。它一直工作到上周我开始投掷:Error from Instagram: The access_token provided is invalid. 无处不在。

我环顾四周,发现(相当逻辑上)我需要重新生成令牌。我尝试通过instagram.pixelunion

这样做 登录管理员帐户时

。它不起作用。

所以我尝试了这个: https://www.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token

我认为该网站的工作原理是在client_id=xxx之后将clientId粘贴到网址中并刷新页面,但这样做会返回:

{"error_type": "OAuthForbiddenException", "code": 403, "error_message": "Implicit authentication is disabled"}

这是我获取图像的代码(我还有一个instafeed.min.js):

    var feed = new Instafeed({
    target: "insta-images",
    get: 'user',
    userId: "xxxxxx",
    clientId: "xxxxxxxxxxxxxxxxxxxxxxxx",
    accessToken: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    resolution: "standard_resolution",
    limit: 8,
    template: '<li id="insta"><a href="{{link}}"><img src="{{image}}"/></a></li>'
});


feed.run();

1 个答案:

答案 0 :(得分:0)

如果您查看应用程序设置:

https://www.instagram.com/developer/clients/{clientId}/edit/ 在“安全”下;你可以检查Disable implicit OAuth。这被描述为:

  

禁用网络应用的客户端(隐式)OAuth流程。如果选中此选项,Instagram将通过仅允许使用服务器端(显式)OAuth流的授权请求来更好地保护您的应用程序。服务器端流程被认为更安全。有关详细信息,请参阅身份验证文档。

要解决您所面临的错误:Implicit authentication is disabled您需要使用服务器端身份验证。您的请求中response_type=code而非response_type=token

有关response_type的OAuth 2.0差异的详细信息:

response_type=code将为您提供临时代码,并使用令牌端点从代码(https://www.instagram.com/developer/authentication/)接收令牌:

curl -F 'client_id=CLIENT_ID' \
-F 'client_secret=CLIENT_SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=AUTHORIZATION_REDIRECT_URI' \
-F 'code=CODE' \
https://api.instagram.com/oauth/access_token