我正在尝试使用list-drive java方法列出googledrive中的所有共享驱动器。这是我的密码。
public static void getDriveId(String folderName, String oauthToken) throws Exception {
DriveList list ;
String pageToken = null;
GoogleCredential credential = new GoogleCredential();
credential.setAccessToken(oauthToken);
try {
_driveService = new Drive.Builder(GoogleNetHttpTransport.newTrustedTransport(), JacksonFactory.getDefaultInstance(), credential).setApplicationName(appName).build();
} catch (GeneralSecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
list = _driveService.drives().list().setQ(folderName).setFields("nextPageToken, drives(id, name)")
.execute();
System.out.println(list.toString());
}
我在查询中设置Q参数,其中foldername="0";salesDrive";
它给我的错误就像
引起原因:com.google.api.client.googleapis.json.GoogleJsonResponseException:400错误请求{
"code" : 400,
"errors" : [ {
"domain" : "global",
"location" : "q",
"locationType" : "parameter",
"message" : "Invalid Value",
"reason" : "invalid"
} ],
"message" : "Invalid Value"
}
如何设置这个q参数以便只显示特定的共享驱动器详细信息?
您缺少两件事:
- 仅提供
foldername
是不够的,您应该指定name = 'foldername'
(请记住,它应该是共享驱动器的名称,而不是该驱动器中包含的文件夹( - 如文件中所述:
若要搜索特定的共享驱动器集,请将useDomainAdminAccess参数设置为真正的
错过上述任何步骤都将导致400错误,就像您收到的错误一样。