0

使用以下代码,单击 google drive 的授权按钮后,我收到 404 resource not found 错误。我的代码在下面-任何想法我做错了什么?

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结尾有和没有 / 作为重定向,我认为正确的重定向网址在哪里?谢谢!!

4

2 回答 2

0

您没有/oauth2callback. 您只有一个 url 处理程序/。尝试:

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

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

于 2017-01-27T18:02:13.347 回答
0

除了包括:

app = webapp2.WSGIApplication( [ ('/', MainHandler), (decorator.callback_path, decorator.callback_handler()), ], debug=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 导入必须像第 3 方导入一样处理,此处的详细信息: https ://developers.google.com/api-client-library/python/start/installation

于 2018-02-21T16:04:21.583 回答