我在一年前设置了一个网站,其中一个Instagram提要显示网站上的帐户图像。它一直工作到上周我开始投掷:Error from Instagram: The access_token provided is invalid.
无处不在。
我环顾四周,发现(相当逻辑上)我需要重新生成令牌。我尝试通过instagram.pixelunion
这样做 登录管理员帐户时。它不起作用。
我认为该网站的工作原理是在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();
答案 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