Ответ «Отсутствует параметр redirect_uri» от Facebook с Python/Django

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

Я пытаюсь использовать 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)

Однако я бы предпочел зависеть от библиотеки, когда это должно поддерживаться изначально без особых трудностей. Может быть, это требует слишком многого...

7
задан user1462558 18 June 2012 в 07:54
поделиться