我有一個現有的Google App Engine Python應用程序,它具有很多功能。我現在想要將Google雲端硬盤整合到應用中。具體來說,我想我的應用程序能夠:從Google App Engine訪問Google Drive Python應用程序
- 創建我的用戶的谷歌雲端硬盤上的空文件,其中我的用戶可以創建一個谷歌文檔。
- 從Google雲端硬盤中檢索該文件,以便在我的應用中進一步處理。
- 定期將其發送回Google Drive,以便用戶可以將其作爲Google文檔進行進一步編輯。
如果有人知道如何做我想做的事情,可以將我引導到特定的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 and Drive的訪問權限,不再顯示在列表中,但我認爲存在一小時或更長時間的延遲來執行訪問撤消。不確定,並沒有看到它的記錄。
在任何情況下,如果我將對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授權,但不能插入文件。
歡迎來到StackOverflow!請考慮重寫您的問題並刪除一些與回答無關的段落(如第4和第5段)。試着具體一點,因爲我必須閱讀兩遍才能理解你想要的內容,這個問題的範圍似乎非常廣泛。 – 2013-03-16 21:33:53
對不便和感謝您的歡迎和指導。希望我的編輯版本更好。範圍並不是很寬泛:我只希望我的應用程序能夠將文檔來回發送到Google雲端硬盤,以便用戶可以使用Google文檔用戶界面編輯文檔,但我也可以在我的應用中使用文檔。 – Lindsay 2013-03-16 21:45:06
我喜歡這個問題 - 你在哪裏找到「drive-v2-python-appengine」?我無法在網上找到它。我不喜歡DrEdit,因爲它依賴大量混淆的javascript來運行。尋找更直接的例子。 – slashdottir 2014-01-31 16:31:20