我有一个现有的Google App Engine Python应用程序,它具有很多功能。我现在想要将Google云端硬盘集成到应用中。具体来说,我希望我的应用能够:
如果知道如何做我想做的事情的人可以将我引导到符合我的SPECIFIC要求的SPECIFIC Google网页(不是像“DrEdit”这样的一般答案),我将永远感激不尽。例”)。提前谢谢!
的更新 的
根据答案1中的建议,基于drive-v2-python-appengine
中生成的示例代码,这是我的程序,其中包含用于创建空文件的RequestHandler:
import os
import webapp2
import io
from google.appengine.api import memcache
import httplib2
from apiclient.discovery import build
from apiclient.http import MediaIoBaseUpload
from oauth2client.appengine import oauth2decorator_from_clientsecrets
decorator = oauth2decorator_from_clientsecrets(
os.path.join(os.path.dirname(__file__), 'client_secrets.json'),
scope=[
'https://www.googleapis.com/auth/drive',
])
http = httplib2.Http(memcache)
drive_service = build("drive", "v2", http=http)
class CreateEmptyFile(webapp2.RequestHandler):
@decorator.oauth_required
def get(self):
body = {
'title': 'Sample Document',
'description': 'A sample document',
'mimeType': 'text/plain'
}
media_body = MediaIoBaseUpload(io.BytesIO(""), mimetype='text/plain', resumable=True)
file = drive_service.files().insert(body=body, media_body=media_body).execute()
self.redirect("/synopsis")
测试有点令人困惑,因为偶尔当我运行它时,包括第一次,它会启动访问请求页面,但大多数情况下它没有。我已经使用https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=en来撤消对驱动器和驱动器的访问权限不再显示在列表中,但我认为执行访问撤销存在一小时或更长时间的延迟。不确定,并没有看到它记录。
在任何情况下,如果我对drive_service.files().insert()
的呼叫进行注释,则不会中止,并重定向到我的概要页面。我相信这意味着授权正常工作,因为这使它像生成的示例代码一样。
但是,如果我取消评论insert
并使用resumable=True
作为媒体机构,我会:
ResumableUploadError: Failed to retrieve starting URI.
如果我使用resumable=False
,我会得到:
HttpError: <HttpError 401 when requesting https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart&alt=json returned "Login Required">
所以我似乎能够通过OAuth 2.0授权,但无法插入文件。
答案 0 :(得分:1)
请尝试我们的快速入门应用: https://developers.google.com/api-client-library/python/start/installation
您可以创建快速入门应用引擎应用,这对您创建初始设置非常有用。有关具体用例,请参阅drive API reference。