2012-08-15 77 views
0

嘗試使用Google Drive API獲取文件時出現錯誤消息。使用Python,導致錯誤的行是:Google Drive的每日限制錯誤消息

file = service.files().get(fileId=googleDriveFileId).execute() 

的錯誤信息是:

HttpError: <HttpError 404 when requesting 
https://www.googleapis.com/drive/v2/files/0B6Cpn8NXwgGPSE8zQW10XzJMc0k?alt=json returned 
"File not found: 0B6Cpn8NXwgGPSE8zQW10XzJMc0k"> 

基本上說「找不到文件」

但是,如果我把URL被請求進入瀏覽器,我收到一條不同的錯誤消息:

https://www.googleapis.com/drive/v2/files/0B6Cpn8NXwgGPSE8zQW10XzJMc0k 

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "usageLimits", 
    "reason": "dailyLimitExceededUnreg", 
    "message": "Daily Limit Exceeded. Please sign up", 
    "extendedHelp": "https://code.google.com/apis/console" 
    } 
    ], 
    "code": 403, 
    "message": "Daily Limit Exceeded. Please sign up" 
} 
} 

這兩個錯誤消息都不正確t我。我知道該文件在那裏。這裏是一個有效鏈接在谷歌驅動器UI從「分享鏈接」檢索到的同一個文件:

https://docs.google.com/file/d/0B6Cpn8NXwgGPSE8zQW10XzJMc0k 

我還檢查API控制檯中的配額的報道,而我們正處於0%的使用率。

任何想法這裏發生了什麼?

謝謝

回答

0

這兩個錯誤消息都沒有準確的信息。問題與權限有關。我使用Google Picker上傳有問題的文件,但這些文件由於權限而無法自動提供給API。我認爲他們會根據文件。

我使用Google雲端硬盤用戶界面爲圖片上傳到「公開」的文件夾設置了權限。現在我的應用程序有權訪問上傳的文件。

雖然在我的情況下將文件權限設置爲「公共」對於我來說是可以的,因爲這些文件都是公開的,我知道這在所有情況下都是不可接受的。有人可以澄清一下如何處理這個問題......這樣,使用Google Picker上傳的文件會自動獲得API訪問權限,而無需將文件夾權限設置爲「公共」?

1

我在the python quickstart之後有類似的錯誤。

原來我已經正確創建API密鑰等,但是已經錯過了第2步:

  1. 選擇您API項目中的服務選項卡,啓用驅動器API

在我跳過並錯過了這個關鍵點之前使用了API。

0

消息是準確的。

在第一種情況下,由於您沒有權限,因此Google提供的文件未找到。這是一個標準的安全措施,而不是通過確認文件存在泄漏信息。

在第二種情況下,您在沒有身份驗證標頭的情況下調用了API,因此Google會將您視爲未註冊且未經授權的應用程序,對於某些Google API而言,這些應用程序可以達到每日配額。在Drive的情況下,每日配額爲零。

我同意這不直觀,我敢肯定許多開發人員年已被浪費(包括我的),但它是準確的。

要回答您關於上傳文件無法訪問的問題,請檢查您是否請求了正確的範圍,並且在上傳時使用了正確的客戶端ID和MIME類型。