当请求access_token时,Instagram会收到400个错误请求

时间:2015-03-27 07:24:43

标签: python curl instagram instagram-api

我正在关注Instagram的instruction以了解如何获取access_token。

我坚持第3步。我尝试使用curl和python脚本进行连接,但都失败了。

这是我的卷曲代码:

curl -F 'client_id=MY_CLIENT_ID’ \ 
-F 'client_secret=MY_CLIENT_SECRET’ \ 
-F 'grant_type=authorization_code’ \ 
-F 'redirect_uri=http://localhost' \ 
-F 'code=MY_CODE' \
https://api.instagram.com/oauth/access_token

返回显示如下

curl: (6) Couldn't resolve host ' '
curl: (6) Couldn't resolve host ' '
curl: (6) Couldn't resolve host ' '
curl: (1) Protocol " https" not supported or disabled in libcurl

但我已经使用了curl ssl

然后我尝试了python,这里是代码(感谢@avinash向我展示了单引号问题,但仍然失败了)

url = 'https://api.instagram.com/oauth/access_token'
values = {
    "client_id"     :   "MY_CLIENT_ID",
    "client_secret" :    "MY_CLIENT_SECRET",
    "grant_type" : "authorization_code",
    "redirect_uri" : "http://localhost",
    "code" : "MY_CODE"
}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()

得到错误urllib2.HTTPError: HTTP Error 400: BAD REQUEST

任何人都可以帮我弄清楚这里有什么问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

你可以看一下这个article。它解释了你可能试图将值作为json字符串发送,而不是作为转换为字符串的字典。 如果是这种情况,请用双引号替换所有单引号

values = {
    "client_id"     :   "MY_CLIENT_ID",
    "client_secret" :    "MY_CLIENT_SECRET",
    "grant_type" : "authorization_code",
    "redirect_uri" : "http://localhost",
    "code" : "MY_CODE"
}