Instagram получает 400 неверных запросов при запросе access_token

Я следую инструкциям от Instagram, чтобы узнать, как получить 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.

Может ли кто-нибудь помочь мне понять, что здесь не так? Спасибо!


person AdaroMu    schedule 27.03.2015    source источник
comment
Почему бы вам не использовать библиотеку Python для инстаграма? Это позаботится об этом за вас.   -  person Daniel Roseman    schedule 27.03.2015
comment
@DanielRoseman На самом деле я просто хочу проверить, написал ли я неправильную команду curl, поскольку скрипт на Python легко написать. Я не планирую использовать python в своей разработке. И мне действительно любопытно, что я сделал неправильно здесь.   -  person AdaroMu    schedule 27.03.2015


Ответы (1)


Вы можете взглянуть на эту статью. В ней объясняется, что возможно, вы пытаетесь отправить значение в виде строки json, а не в виде словаря, преобразованного в строку. Если это так, замените все одинарные кавычки двойными кавычками.

values = {
    "client_id"     :   "MY_CLIENT_ID",
    "client_secret" :    "MY_CLIENT_SECRET",
    "grant_type" : "authorization_code",
    "redirect_uri" : "http://localhost",
    "code" : "MY_CODE"
}
person avinash pandey    schedule 27.03.2015