2013-05-13 47 views
6

我在GAE(Python 2.7)中有一個應用程序,現在需要訪問Google Drive以顯示(共享)文件夾和文檔列表。如何從Google App Engine使用Google Drive API?

搜索通常會產生指向DrEdit的指針,包括App Engine and Google Drive API,它會提出相同的問題,但接受我不同意的答案,因爲DrEdit是Google Drive的示例應用程序,而不是GAE。

從驅動器API中的文件列表是希望我能夠從GAE使用:https://developers.google.com/drive/v2/reference/files/list

+0

「DrEdit是用Python在Google App Engine上編寫的Web應用程序」。它出什麼問題了? https://developers.google.com/drive/examples/python – 2013-05-14 02:18:44

+0

此問題:http://stackoverflow.com/questions/15454708/accessing-google-drive-from-a-google-app-engine-python-app有評論「謝謝,我嘗試過了,我也在developers.google.com/drive/examples/python上試過DrEdit(花了我幾個小時的工作,直到它意識到它與我的需求沒有任何關係)。」 DrEdit是Google雲端硬盤的應用,即向Google雲端硬盤添加功能。我只想從GAE讀取驅動器。我會再次看DrEdit,在某處可能有我需要的信息... – cbootle 2013-05-14 08:42:19

+1

DrEdit包含所有必要的設置信息。但是,像許多示例應用程序一樣,它非常複雜。如果有人遇到此線程,並且只有Drive-Api-app的基本接線,那將非常有幫助。 – rGil 2013-05-14 13:54:41

回答

4

雖然谷歌App Engine和谷歌驅動器都是谷歌的產品,遺憾的是他們並沒有直接的聯繫。 Google Drive API可以通過google-api-python-client庫訪問,您必須安裝該庫。

該方法可以在Python Google Drive API Quickstart Guide發現,並彙總形式如下:

  1. 在谷歌的一邊:允許驅動器API訪問您的GAE程序

    • Activate Drive API。點擊轉到憑證按鈕繼續...
    • 創建您同意畫面:設置你的的OAuth同意畫面作爲谷歌將拋出奇怪的錯誤,如果這尚未建立:
      • 點擊在的OAuth同意畫面標籤
      • 選擇郵箱地址並輸入產品名稱
    • 獲取證書:
      • 點擊證書標籤
      • 選擇添加憑據然後的OAuth 2.0客戶端ID。選擇你的申請類型,並輸入相關的詳細信息。你可以稍後改變它們!
      • 回到Credentials選項卡上,下載JSON憑證(一直到表格右邊,下載按鈕只在你懸停在它附近時纔會出現)。將它重命名爲client_secret.json,並將其放置在您的根代碼目錄中。您將需要此來請求用戶的憑據。
  2. 在你身邊:Download the google-api-python-client library,將它解壓縮在你的代碼目錄並運行python setup.py install。這將安裝包含許多Google產品API的庫。

  3. 現在您已準備好使用Drive API。您可以使用sample code測試您的訪問權限。閱讀它是因爲它是編寫自己的代碼的好指南!如果您正在訪問用戶數據,則需要在登錄時請求用戶憑據,並且最有可能存儲它們。然後,使用API​​,最簡單的方法是獲得service對象:

    import httplib2 
    from apiclient import discovery 
    
    credentials = get_credentials() #Your function to request/access stored credentials 
    #Authorise access to Drive using the user's credentials 
    http = credentials.authorise(httplib2.Http()) 
    #The service object is the gateway to your API functions 
    service = discovery.build('drive', 'v2', http=http) 
    
    #Run your requests using the service object. e.g. list first 10 files: 
    results = service.files().list(maxResults=10).execute() 
    # ... etc ... Do something with results 
    

上面的代碼片斷是從sample code修改。

Google Drive的參考API可以是found here

將GAE鏈接到其他Google產品的API以及例如日曆。所有最好的寫你的程序!