問題描述
我正在嘗試使用官方 Java 示例熟悉 Google Drive API.但是,在浪費了幾個小時并嘗試設置了兩次示例之后,我仍然無法按預期使用它.
I'm trying to get familiar with the Google Drive API using the official Java sample. However, after wasting a few hours and attempting to set the sample up two times, I'm still not able to use it as expected.
它不會顯示文件的內容,而是在 FileServlet(/svc 路徑)中引發 404 錯誤.更具體地說, service.files().get(fileId).execute();
似乎返回 null.我已經直接從 Google Drive 以及使用 Google File Picker 嘗試了不同的文件、不同的 MIME 類型.
Instead of displaying a file's content it throws a 404 error in the FileServlet (/svc path). More specifically, service.files().get(fileId).execute();
seems to return null. I've tried it with different files, different MIME types, directly from Google Drive as well as using the Google File Picker.
我已按照 https://developers.google.com/drive 中描述的步驟進行操作/examples/java 盡可能接近.
I've followed the steps described over at https://developers.google.com/drive/examples/java as closely as possible.
有人能夠讓示例運行嗎?
Has anyone been able to get the sample running?
這是請求 URL /svc?file_id=0B08R9MrOE-ejZTY2M2I5MjAtYmVjZS00OTkyLWI4ZTEtOTg4OGM3YTIxMWEw
時 FileServlet 的日志輸出(第 78 行拋出 404 錯誤):
edit:
Here's the log output of the FileServlet when requesting the URL /svc?file_id=0B08R9MrOE-ejZTY2M2I5MjAtYmVjZS00OTkyLWI4ZTEtOTg4OGM3YTIxMWEw
(the 404 error is thrown at line 78):
2012-04-26 08:21:36.077
com.google.api.client.http.HttpRequest execute: -------------- REQUEST --------------
GET https://www.googleapis.com/drive/v1/files/0B08R9MrOE-ejZTY2M2I5MjAtYmVjZS00OTkyLWI4ZTEtOTg4OGM3YTIxMWEw
Accept-Encoding: gzip
User-Agent: Google-HTTP-Java-Client/1.8.3-beta (gzip)
D 2012-04-26 08:21:36.263
com.google.api.client.http.HttpResponse <init>: -------------- RESPONSE --------------
403 OK
content-type: application/json; charset=UTF-8
content-encoding: gzip
date: Thu
date: 26 Apr 2012 06:21:36 GMT
expires: Thu
expires: 26 Apr 2012 06:21:36 GMT
cache-control: private
cache-control: max-age=0
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
content-length: 188
server: GSE
x-google-cache-control: remote-fetch
via: HTTP/1.1 GWA
D 2012-04-26 08:21:36.265
com.google.api.client.http.HttpResponse getContent: Response size: 188 bytes
D 2012-04-26 08:21:36.271
com.google.api.client.http.HttpResponse getContent: {
"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"
}
}
這聽起來很像我不認識你",所以我再次查看了我的客戶端 ID 和客戶端密碼:我注意到有兩個客戶端 ID 和客戶端密碼顯示在API 控制臺,一個Web 應用程序的客戶端 ID"和另一個Drive SDK 的客戶端 ID".我以前用過那個用于 Web 應用程序,所以我嘗試切換到用于 Drive SDK 的那個.不幸的是,這并沒有改變任何東西.同樣的錯誤...:/
This sounds a lot like "I don't know you" to me, so I have taken another look at my Client ID and Client Secret: I've noticed that there are two Client IDs and Client Secrets being displayed in the API Console, one "Client ID for web applications" and another "Client ID for Drive SDK". I've used the one for web applications previously, so I tried to switch to the one for the Drive SDK. Unfortunately, this doesn't change anything. Same error... :/
推薦答案
我最終設法讓它工作.我不確定之前的問題是什么,但這里有一些提示給那些面臨類似問題的人:
I eventually managed to get it working. I'm not sure what was the problem before, but here are some tips for those who are facing similar problems:
Web 應用程序的客戶端 ID"和Drive SDK 的客戶端 ID"讓我感到困惑.不幸的是,文檔沒有告訴您在哪個地方使用哪一個,但您似乎只需要Web 應用程序的客戶端 ID".
The "Client ID for web applications" and the "Client ID for Drive SDK" confused me. Unfortunately the documentation doesn't tell you which one to use at which place, but it seems like you only need the "Client ID for web applications".
如果您更新 Chrome 擴展程序或 API 控制臺,可能需要一些時間才能讓云端硬盤識別這些更改.例如,在 API 控制臺中更改 OAuth 客戶端 ID 可能需要一些時間才能生效,因為每個人都在緩存.如果您正在測試您的應用程序,刪除緩存和 cookie 有助于加快該過程.
If you update your Chrome extension or the API console it could take some time until Drive recognizes those changes. For example, changing the OAuth Client ID in the API console could take some time until it takes effect, since everybody's caching. If you are testing your application, deleting cache and cookies helps speed up the process.
祝你申請順利,感謝所有幫助過我的人!
Good luck with your applications, and thanks to everybody who helped me!
這篇關于Google Drive SDK - Java 示例不工作的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!