我正在开发一个与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.
请帮助我,因为我完全陷入困境并且没有完成最后期限。
答案 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步。使用更改的参数再次发送请求。
确保在发送请求时登录浏览器。您将得到所需的回复。