OAuth2和Drive API无法列出/检索文件

时间:2013-02-20 07:38:09

标签: java oauth-2.0 google-drive-api

我有一个网络应用程序需要列出我的Google云端硬盘中的所有文件,然后在点击时获取它们。 我使用OAuth进行身份验证,它似乎工作(相同的代码适用于Calendar API)。我在serviceAccountScopes中尝试了不同的范围但没有用。

基本上认证是:

credential = new GoogleCredential.Builder().
setTransport(HTTP_TRANSPORT).
setJsonFactory(JSON_FACTORY).
setServiceAccountId(apiEmail).
setServiceAccountScopes(DriveScopes.DRIVE).
setServiceAccountPrivateKeyFromP12File(p12File).build();

credential.refreshToken();

service = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential).
setApplicationName("My API").build();

编辑我应该在refreshToken()调用之前添加该凭据的accessToken为null。

之后我尝试:

FileList files = service.files().list().execute();

返回的FileList是(应该包含项目):

{"etag":"\"_U9FTLXcHskmKgrWAZqJlfW8kCo/vyGp6PvFo4RvsFtPoIWeCReyIC8\"","items":[],"kind":"drive#fileList","selfLink":"https://www.googleapis.com/drive/v2/files"}

如果我检查selfLink的内容是:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "dailyLimitExceededUnreg",
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
    "extendedHelp": "https://code.google.com/apis/console"
   }
  ],
  "code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
 }
}

每日限制不是问题。 (我想这与此问题无关,因为:https://stackoverflow.com/a/10639679/2090125)。另外,我在控制台(https://stackoverflow.com/a/10329353/2090125)中启用了Drive和Drive SDK。

下载文件时执行此操作:

File file = service.files().get(fileId).execute();

它产生了这个(fileId存在):

An error occured: com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 Not Found
{
  "code" : 404,
  "errors" : [ {
    "domain" : "global",
    "message" : "File not found: 0B97KF40kTwrTaTllMnZCTV9ZSnM",
    "reason" : "notFound"
  } ],
  "message" : "File not found: 0B97KF40kTwrTaTllMnZCTV9ZSnM"
}

再次检查https://www.googleapis.com/drive/v2/files/0B97KF40kTwrTaTllMnZCTV9ZSnM时,会看到相同的“dailyLimitExceededUnreg”。

这里发生了什么,我的身份验证有问题吗?我应该以某种方式在Drive SDK中配置Drive Integration吗?从Googles文档中我了解到它没有必要,我正在使用的方法应该无需进一步配置即可工作。

0 个答案:

没有答案