【问题标题】:Instagram get 400 bad request when request the access_tokenInstagram 在请求 access_token 时收到 400 错误请求
【发布时间】:2015-03-27 07:24:43
【问题描述】:

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

我卡在第3步了。我尝试使用curl和python脚本连接,但都失败了。

这是我的 curl 代码:

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

谁能帮我弄清楚这里出了什么问题?谢谢!

【问题讨论】:

  • 你为什么不用 instagram 的 Python 库?这会为您解决这个问题。
  • @DanielRoseman 其实我只是想测试一下我是否写错了 curl 命令,因为 python 脚本很容易编写。我不打算在我的开发中使用 python。我真的很好奇我在这里做错了什么。

标签: python curl instagram instagram-api


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2014-01-20
    • 1970-01-01
    相关资源
    最近更新 更多