Java OAuth2和驱动API,can';t列出/检索文件
我有一个web应用程序,它需要列出我的Google驱动器中的所有文件,然后在单击时获取它们。 我使用OAuth进行身份验证,它似乎可以工作(同样的代码也适用于日历API)。我在serviceAccountScopes中尝试了不同的作用域,但没有结果 基本上,身份验证是:Java OAuth2和驱动API,can';t列出/检索文件,java,oauth-2.0,google-drive-api,Java,Oauth 2.0,Google Drive Api,我有一个web应用程序,它需要列出我的Google驱动器中的所有文件,然后在单击时获取它们。 我使用OAuth进行身份验证,它似乎可以工作(同样的代码也适用于日历API)。我在serviceAccountScopes中尝试了不同的作用域,但没有结果 基本上,身份验证是: credential = new GoogleCredential.Builder(). setTransport(HTTP_TRANSPORT). setJsonFactory(JSON_FACTORY). setServic
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();
返回的文件列表为(应包含项):
如果我检查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."
}
}
每日限额在这里不是问题。(我想这与这个问题无关,因为:)。另外,我在控制台()中启用了驱动器和驱动器SDK
下载文件时,将执行以下操作:
File file = service.files().get(fileId).execute();
它会生成以下内容(fileId存在):
再次检查时,会看到相同的“dailyLimitExceededUnreg”
这是怎么回事,我的身份验证有问题吗?我是否应该以某种方式在驱动器SDK中配置驱动器集成?从谷歌的文档中,我了解到这是不必要的,我使用的方法应该可以工作,而无需进一步配置 我也有同样的问题。你有没有想过?
File file = service.files().get(fileId).execute();
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"
}