列出来自Google驱动器的所有共享驱动器

时间:2020-11-07 08:38:56

标签: java api google-drive-api shared-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());
        }

我在文件夹名=“ salesDrive”的查询中设置Q参数

它给我类似的错误

原因: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参数以仅显示特定的共享驱动器详细信息?

1 个答案:

答案 0 :(得分:0)

您缺少两件事:

  1. 仅提供foldername是不够的,您应该指定name = 'foldername'(请记住,它应该是共享驱动器的名称,而不是此驱动器中包含的文件夹)
  2. documentation中所述:

要搜索一组特定的共享驱动器,请将useDomainAdminAccess参数设置为true

如果遗漏了上述任何一个步骤,则会导致出现400错误,就像您收到的一样。