Using GAE/Decorators руководство говорит мне, что «вам нужно добавить определенный обработчик URL для вашего приложения, чтобы обрабатывать перенаправление с сервера авторизации обратно в приложение»:Как правильно определить oauth2callback GAE?
def main():
application = webapp.WSGIApplication(
[
('/', MainHandler),
('/about', AboutHandler),
(decorator.callback_path, decorator.callback_handler()),
],
debug=True)
run_wsgi_app(application)
В настоящее время я не могу правильно установить это вверх. В результате я получаю ответ HTTP backback HTTP 302 (хотя он должен быть пойман обработчиком) вместо ответа, который я ожидаю. У меня есть два вопроса для решения, что:
oauth2client/appengine.py
доставки в GAE 1.8.0 не имеетcallback_path
атрибута и неcallback_handler()
метода, что мы должны делать? Непосредственно связывать('/oauth2callback', OAuth2Handler)
вместо(decorator.callback_path, decorator.callback_handler())
?- Что это значит для
myapp.yaml
? Является ли это право объявить новый блок, как:- url: /oauth2callback script: oauth2client/appengine.py
Спасибо за вашу помощь! Вот мой текущий код:
myapp.py
class UpdatePage(webapp2.RequestHandler):
def get(self):
playlist_id = self.youtube_create_playlist()
...
@decorator.oauth_required
def youtube_create_playlist(self):
http = decorator.http()
request = youtube.playlists().insert(...)
response = request.execute(http=http)
return response["id"]
...
update = webapp2.WSGIApplication([
('/update', UpdatePage),
('/oauth2callback', OAuth2Handler)
],
debug=True)
app.yaml
application: myapp
version: 1
runtime: python27
api_version: 1
threadsafe: false
handlers:
- url:/
static_files: index.html
upload: index.html
- url: /oauth2callback
script: oauth2client/appengine.py
- url: /update
script: myapp.update
Спасибо за указание мне в правом API для использования. Однако после установки 1.1, обновляя мой проект и гарантируя, что мой импорт теперь разрешен к локальной версии 1.1, теперь я могу использовать '(decorator.callback_path, decorator.callback_handler())', но у меня все еще такая же проблема: обратный вызов isn ' t перехватывается, и я просто заканчиваю необработанными данными перенаправления 302 вместо ожидаемого результата. –
Вам нужно будет указать правильный URL-адрес, определенный в вашем проекте, в [Консоль API Google] (http://code.google.com/apis/console), и вам нужно взять маршрут '/ oauth2callback' из своего приложение. Что касается '302', это ожидается и является точкой обратного вызова. – bossylobster
здесь [скриншот моего API conf] (https://dl.dropboxusercontent.com/u/368761/bugreport/google-api-cliend-id-configuration.png). Но я не понимаю, что вы подразумеваете под * «Ожидается 302 и точка обратного вызова» *. Я понимаю, что 'appengine.py' должен перехватить его и вернуть исходному абоненту ответ на мой запрос: в приведенном выше коде я вызываю' youtube_create_playlist() ', но вместо получения новой строки ID плейлиста я получаю строка 302: [снимок экрана] (https://dl.dropboxusercontent.com/u/368761/bugreport/playlist-id-returns-302-string.png). Что не так? Благодаря! –