Я использую поток «Серверная сторона», чтобы получить права пользователя на доступ к некоторой информации с помощью Python в Google Appengine.
Я могу получить сгенерированный сервером код из Facebook после того, как пользователь нажмет кнопку «Разрешить».
Однако, когда я получаю токен доступа, я сталкиваюсь со следующей ошибкой:
Трассировка (последний последний вызов):
File "/ base / python_runtime / python_lib /version / 1 / google / appengine / ext / webapp / init .py ", строка 515, в вызов файл handler.get (* groups)" / base / data / home /apps / finisherph / 1.348502373491720746 / controllers.py ", строка 21, в файле get data = urllib2.urlopen (access_token_url)
Файл" /base/python_runtime/python_dist/lib/python2.5/urllib2.py ", строка 124,в urlopen вернуть _opener.open (url, data) Файл "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", строка 387, в открытом файле ответа = файл метаданных (req, response) "/ base / python_runtime/python_dist/lib/python2.5/urllib2.py ", строка 498, в http_response 'http', запрос, ответ, код, msg, hdrs) Файл" /base/python_runtime/python_dist/lib/python2.5/urllib2.py ", строка 425, по ошибке возвращает self._call_chain (* args) Файл" /base/python_runtime/python_dist/lib/python2.5/urllib2.py ", строка 360, в _call_chain result = func (* args) Файл "/base/python_runtime/python_dist/lib/python2.5/urllib2.py", строка 506, в http_error_default вызывает HTTPError (req.get_full_url (), код, msg, hdrs, fp)HTTPError: HTTP Error 400: Bad Request
Вот код в моем контроллере, куда отправляется ответ от facebook после того, как пользователь нажимает кнопку «Разрешить».Это все еще хак, поэтому код немного грязный.Все еще пытаюсь заставить это работать.
class Register(webapp.RequestHandler):
def get(self):
code=self.request.get('code')
logging.debug("code: "+code)
accesst_url=["https://graph.facebook.com/oauth/access_token?"]
accesst_url.append("client_id=CLIENT_ID&")
import urllib
accesst_url.append(urllib.urlencode
({'redirect_uri':'http://my.website.com/register/facebook/'}))
accesst_url.append('&')
accesst_url.append("client_secret=CLIENT_SECRET&")
accesst_url.append("".join(["code=",str(code)]))
logging.debug(accesst_url)
access_token_url="".join(accesst_url)
logging.debug(access_token_url)
import urllib2
data = urllib2.urlopen(access_token_url)
...
...
Ошибка возникает здесь:
data = urllib2.urlopen(access_token_url)
, когда я копирую и вставляю access_token_url из моих журналов, я получаю следующую ошибку:
{«error»: {«type»: «OAuthException», «message»: «Ошибка проверки кода подтверждения».}}
Что мне здесь не хватает?