Instagram oauth api提供{"代码":400," error_type":" OAuthException"," error_message":"没有匹配的代码发现&#34。 }

时间:2014-05-27 10:19:17

标签: oauth-2.0 instagram

我正在开发一个与Instagram API集成的应用程序来访问用户信息。我使用授权网址成功获取了访问令牌但无法使用access_token url获取userId:

我尝试了两个端点:

https://api.instagram.com/oauth/access_token?client_id=48275564e2c445f6b8e1356djfha3e0c&client_secret=ab2062da9f314e3489dke7ae9cbe6e5d&redirect_uri=http://localhost&grant_type=authorization_code

https://api.instagram.com/oauth/access_token

帖子正文为:

client_id=48275564e2c445f6b8e1356djfha3e0c&client_secret=ab2062da9f314e3489dke7ae9cbe6e5d&redirect_uri=http://localhost&grant_type=authorization_code&code=1351860224.4827556.5dc92c4d15ea4a4ea1b0d33eaf0eef19

(请求中的数据被修改),但我正在接受以下内容

{
    "code": 400,
    "error_type": "OAuthException",
    "error_message": "No matching code found."
}

我已经看到了大量的查询和问题,但找不到任何问题的解决方案。

我遇到的几个问题是:

1) is the field code in the URL is same as access_token, if not how could i get the code field's value.

2) is there any other mechanism(API) to fetch the user details given the username is not known.

请帮助我,因为我完全陷入困境并且没有完成最后期限。

6 个答案:

答案 0 :(得分:12)

我在Instagram开发者中取消选中禁用隐式OAuth - >管理客户修复了问题

答案 1 :(得分:0)

尝试将redirect_uri参数urlEncode为

http%3A%2F%2Flocalhost

您的代码参数包含"。"可能是错误的字符。

code=1351860224.4827556.5dc92c4d15ea4a4ea1b0d33eaf0eef19

可能会导致问题

"error_message": "No matching code found."

" 5dc92c4d15ea4a4ea1b0d33eaf0eef19"似乎是正确的代码

答案 2 :(得分:0)

我得到了同样的错误。 Instagram的垃圾邮件系统似乎禁止用户访问任何非官方应用程序。只需更改用户密码即可。在我的情况下,这是帮助。 另请尝试创建另一个应用程序。

<强> UPD

my answer到另一个问题

用户看起来有多个code,您看到first code,但需要second。如果您收到错误,请尝试relogin个用户。用户不会看到带有确认按钮的Instagram页面,只是重定向。

可能的错误算法:

1. User click auth link.
2. Get first code.
3. User click auth link (twice, redirection problem, public auth system, etc.)
4. Get another code (even on the same client_id, redirect_uri).
5. You get first code.
6. But first code already doesn't exists.

答案 3 :(得分:0)

问题在于需要将重定向网址设置为http://localhost/signin-instagram

signin-instagram 部分非常重要 所以转到Instagram.com/developer - &gt;管理客户端 - &gt;安全 - &gt;使用该端设置的有效重定向URI http:/../ signin-instagram

答案 4 :(得分:0)

由于缺少内容类型的HTTP标头

,因此已停止使用Instagram python代码段失败
response, content = http_object.request(url, method="POST", body=data,headers = {"Content-type": "application/x-www-form-urlencoded"})

添加application / x-www-form-urlencoded为我工作

答案 5 :(得分:0)

我会提到对我有用的东西。

第1步。从您的面板生成新的客户端密钥。

第2步。按照提到的here步骤1再次获取代码。

第3步。使用更改的参数再次发送请求。

确保在发送请求时登录浏览器。您将得到所需的回复。