Google App Engine oauth2回拨404

时间:2017-01-26 20:07:16

标签: google-app-engine oauth-2.0 google-api gcloud google-python-api

使用以下代码我在点击google驱动器的授权按钮后收到404资源未找到错误。我的代码在下面 - 任何想法我做错了什么?



from __future__ import print_function
import httplib2
import os

from apiclient import discovery
from oauth2client import client
from oauth2client import tools
from oauth2client.file import Storage
from apiclient.discovery import build
from google.appengine.ext import webapp
from oauth2client.appengine import OAuth2DecoratorFromClientSecrets

import webapp2



try:
    import argparse
    flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
except ImportError:
    flags = None
except SystemExit:
    flags= None
#
## If modifying these scopes, delete your previously saved credentials
## at ~/.credentials/drive-python-quickstart.json
SCOPES = 'https://www.googleapis.com/auth/drive'
CLIENT_SECRET_FILE = 'client_secret.json'
APPLICATION_NAME = 'Drive API Quickstart'

decorator = OAuth2DecoratorFromClientSecrets( CLIENT_SECRET_FILE,SCOPES)

service = build('drive', 'v3')

class MainHandler(webapp.RequestHandler):

  @decorator.oauth_required
  def get(self):
    # Get the authorized Http object created by the decorator.
    http = decorator.http()
    # Call the service using the authorized Http object.
    request = service.files().list(q = "mimeType != 'application/vnd.google-apps.folder'", pageSize=1000,  )
    response = request.execute(http=http)
    
app = webapp.WSGIApplication([
    ('/', MainHandler),
], debug=True)




我有https://drive-156701.appspot.com/oauth2callback有和没有/最后作为重定向,我认为正确的重定向网址? 谢谢!

2 个答案:

答案 0 :(得分:0)

您没有/oauth2callback的网址处理程序。您只有/的网址处理程序。尝试:

app = webapp.WSGIApplication([
    ('/oauth2callback', Oauth2CallbackHandler),
    ('/', MainHandler),
], debug=True)

并创建一个Oauth2CallbackHandler类来处理回调。

答案 1 :(得分:0)

除了包括:

app = webapp2.WSGIApplication(         [             ('/',MainHandler),             (decorator.callback_path,decorator.callback_handler()),             ]         调试= TRUE)

@ decorator.oauth_required会为你处理回调。

观看此视频:https://www.youtube.com/watch?v=HoUdWBzUZ-M 您需要为localhost开发和部署创建凭据。

确保您已签出:https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27 您的api导入必须像第三方导入一样处理,详情请点击此处: https://developers.google.com/api-client-library/python/start/installation