2013-02-14 4 views
1

를 사용 callback_handler Oauth2Decorator :게으른 부하이 제대로 작동 webapp2

secrets = 'client_secrets-gae.json' 
decorator = OAuth2DecoratorFromClientSecrets(os.path.join(os.path.dirname(__file__), secrets), 
              scope='https://www.googleapis.com/auth/drive') 
.... 

webapp2.Route('/oauth2callback', handler=decorator.callback_handler()), 

하지만 어떻게 내가 게으른 부하 콜백 using webapp2.

webapp2.Route(r'/products', handler='handlers.ProductsHandler', name='products-list', handler_method='list_products') 

업데이트 및

이 줄 decorator.callback_handler()가 요청 핸들러 객체를 생성 해결 : 나는 장식의 인스턴스를 참조해야합니다.

decorator_callback_handler = decorator.callback_handler() 

.... 

webapp2.Route('/oauth2callback', handler='my_package.my_mod.decorator_callback_handler'), 

데코레이터 및 webapp2 라우트를 처리하기 위해 게으른로드의 이점을 위해 다른 모듈을 사용합니다.

답변

1

이 라인 decorator.callback_handler()은 OAuth 2.0 춤 중에 서버에서 다시 리다이렉션을 처리하는 webapp.RequestHandler를 반환합니다.

에서 :

oath2client.appengine

에서 callback_handler 문서화 문자열 그래서 해결책은 다음과 같습니다

use_api.py : main.py에서

secrets = 'client_secrets-gae.json' 
decorator = OAuth2DecoratorFromClientSecrets(os.path.join(os.path.dirname(__file__), secrets), 
             scope='https://www.googleapis.com/auth/drive') 

decorator_callback_handler = decorator.callback_handler() 

그리고 게으른 하중이 핸들러 :

app = webapp2.WSGIApplication([   
     ....       # other routes            
     webapp2.Route('/oauth2callback', handler='package.use_api.decorator_callback_handler'),      
    ], debug=True)