2016-01-10 49 views
0

我運行這個請求:下載從谷歌驅動器一個公共共享文件(遇到500錯誤)

https://www.googleapis.com/drive/v3/files/1TcBDyugpHQSyUCLZcM0XtHOXo0S9Neh6asQUAYh54EM/export?mimeType=application%2Fpdf&key=[apiKey] 

在此公開文件中:

https://docs.google.com/document/d/1TcBDyugpHQSyUCLZcM0XtHOXo0S9Neh6asQUAYh54EM/edit

這顯然是可導出作爲PDF。我通過谷歌的API瀏覽器運行這個相同的查詢:Files: export

無論憑什麼憑證抓取,它都會告訴我,應用程序/ pdf數據的響應是200 OK。然而,在瀏覽器中手動運行查詢給我:

https://www.googleapis.com/drive/v3/files/1TcBDyugpHQSyUCLZcM0XtHOXo0S9Neh6asQUAYh54EM?alt=media&key=[api key] 

返回:

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "badRequest", 
    "message": "Bad Request" 
    } 
    ], 
    "code": 400, 
    "message": "Bad Request" 
} 
} 

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "internalError", 
    "message": "Internal Error" 
    } 
    ], 
    "code": 500, 
    "message": "Internal Error" 
} 
} 

我使用正常File.get方法也有類似的問題400

我只是做錯了什麼?任何幫助感謝!

+1

錯誤500是服務器錯誤暫時不可用。您必須實施[指數退避](https://developers.google.com/api-client-library/java/google-http-java-client/backoff?hl=zh-CN)才能重新發送請求。 – gerardnimo

+0

我只手動執行查詢,最多隻需一個小時。認爲Google的查詢限制應該爲我的帳戶10 QPS。 – djvs

+0

對API的請求必須經過認證。如果您直接在瀏覽器中運行它,它將不包含必要的標題。 – Gerardo

回答

0

API密鑰用於訪問PUBLIC數據。除非你的文件被設置爲公開你不會使用API​​密鑰獲取它。您將需要使用的OAuth2進行驗證,並使用一個訪問令牌

https://www.googleapis.com/drive/v3/files/1TcBDyugpHQSyUCLZcM0XtHOXo0S9Neh6asQUAYh54EM?alt=media&access_token=[token]

Error documentation

400:錯誤的請求

用戶錯誤。這可能意味着未提供必填字段或參數,提供的值無效,或提供的字段組合無效。