Using GAE / Decoratorsガイドには、「承認サーバーからアプリケーションへのリダイレクトを処理するには、アプリケーションに特定の URL ハンドラを追加する必要がある」と書かれています。
def main():
application = webapp.WSGIApplication(
[
('/', MainHandler),
('/about', AboutHandler),
(decorator.callback_path, decorator.callback_handler()),
],
debug=True)
run_wsgi_app(application)
現在、これを適切に設定することができません。その結果、期待していた応答ではなく、HTTP 302 コールバック応答 (ハンドラーによってキャッチされる必要があります) が表示されます。それに対処するための2つの質問があります。
oauth2client/appengine.py
GAE 1.8.0のシッピングにはcallback_path
属性もcallback_handler()
メソッドもありません。どうすればよいですか? ?('/oauth2callback', OAuth2Handler)
の代わりに直接バインドします。(decorator.callback_path, decorator.callback_handler())
- それは何を意味し
myapp.yaml
ますか?次のような新しいブロックを宣言するのは正しいですか。- URL: /oauth2callback スクリプト: 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