【发布时间】:2016-06-17 20:02:02
【问题描述】:
我正在使用 instagram api 和请求,试图通过 OAuth。我使用 r = requests.get(...) 并关注 instagram 文档。但是,请求的输出绝不是我所期望的。我有 2 个有点相似的问题。
1) 如果我发送错误的参数,我希望返回的 JSON 看起来像
{"code": 400, "error_type": "OAuthException", "error_message": "You must include a valid client_id, response_type, and redirect_uri parameters"}
如果我将r.url 中的字符串粘贴到浏览器中,我会看到什么。然而r.json() 只是失败并给了我
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2) 正确的响应应该会将我重定向到我的重定向 url,其中还包含一个代码。同样,在将 r.url 粘贴到浏览器中时,这可以正常工作。我按预期成功重定向。即使明确设置allow_redirects=False,请求似乎也不会重定向我。我只需要从 url 读取代码。如何获得请求以提供最终 url 以便我提取代码?
编辑:也可以包含一些代码。
def get_code(client_id, redirect_uri, scope="basic"):
params = {"client_id": client_id,
"redirect_uri": redirect_uri,
"response_type": "code",
"scope": scope}
r = requests.get('https://api.instagram.com/oauth/authorize/',
params=params)
# print r.url
# print r.json()
return r
【问题讨论】:
-
您如何验证?文档的链接也很好
-
我尝试了隐式和显式方法(这一步它们本质上是相同的)。以下是文档:instagram.com/developer/authentication
-
json 没有被解析,因为它是登录表单的 html。尝试在浏览器中清除 instagram.com 的 cookie,您应该会看到登录表单。
-
另外,看看python-instagram。
-
这很有意义。不知道我是如何忽略它的。谢谢
标签: python python-requests instagram