У меня есть шаблон Django, который запускает процесс OAuth Facebook , выполнив:
window.location='https://www.facebook.com/dialog/oauth?client_id=MY_CLIENT_ID&redirect_uri=http%3A//localhost%3A8000/fbpanel/explore-python'
Затем, в моем представлении Django, я получаю следующий код:
import cgi
import urllib
# [...]
code = request.GET['code']
args = {
'client_id': MY_CLIENT_ID,
'redirect_uri': 'http://localhost:8000/fbpanel/explore_python'
'client_secret': MY_CLIENT_SECRET,
'code': code,
}
url = 'https://graph.facebook.com/oauth/access_token?' + \
urllib.urlencode(args)
raw_response = urllib.urlopen(url).read()
response = cgi.parse_qs(raw_response)
if response:
error = ''
if response['access_token']:
access_token = response['access_token'][0]
if response['expires']:
expires = response['expires'][0]
else:
access_token = 'No access token returned'
expires = 'No expiration given'
error = raw_response
Неизменно, response
равен None
, а raw_response
содержит Error: {"error":{"message":"Error validating verification code.","type":"OAuthException"}}
Те же учетные данные подтверждают штраф с помощью JavaScript SDK .В этом случае я также привязывал свой сервер к localhost
и установил localhost:8000
в моем официальном домене приложения.До того, как я это сделал, JavaScript не работал.После того, как это сделал.Так что я не думаю, что localhost
- это проблема.
Я вручную прошел по коду, печатая code
, возвращенный FB, затем вручную выполняя приведенный выше код построчно в pythonпереводчик, и я не вижу ничего, что я делаю неправильно.Каковы мои следующие шаги отладки?Документация FB предлагает мало рекомендаций, если вы получаете OAuthException
.