Вероятно, это очень глупый вопрос, но я часами смотрю на него и не могу найти, что я делаю не так. .
Я пытаюсь использовать Python для аутентификации с помощью API Facebook, но у меня возникают проблемы с запросом маркера доступа пользователя. После получения кода делаю запрос на https://graph.facebook.com/oauth/access_tokenпримерно так:
conn = httplib.HTTPSConnection("graph.facebook.com")
params = urllib.urlencode({'redirect_uri':request.build_absolute_uri(reverse('some_app.views.home')),
'client_id':apis.Facebook.app_id,
'client_secret':apis.Facebook.app_secret,
'code':code})
conn.request("GET", "/oauth/access_token", params)
response = conn.getresponse()
response_body = response.read()
В ответ получаю
{"error":{" message":"Отсутствует параметр redirect_uri.","type":"OAuthException","code":191}}
Есть идеи, что может пойти не так? Я уже убедился, что передаваемый redirect_uri находится в домене приложения, но может ли быть проблема в том, что он размещается локально, и этот домен просто перенаправляется на локальный хост моим файлом hosts?
Спасибо за помощь!
редактировать:
Я получил эту работу, используя библиотеку запросов:
params = {'redirect_uri':request.build_absolute_uri(reverse('profiles.views.fb_signup')),
'client_id':apis.Facebook.app_id,
'client_secret':apis.Facebook.app_secret,
'code':code}
r = requests.get("https://graph.facebook.com/oauth/access_token",params=params)
Однако я бы предпочел зависеть от библиотеки, когда это должно поддерживаться изначально без особых трудностей. Может быть, это требует слишком многого...