0

我正在尝试使用 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 参数 where foldername="salesDrive"

它给了我类似的错误

引起:com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request {

  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "location" : "q",
    "locationType" : "parameter",
    "message" : "Invalid Value",
    "reason" : "invalid"
  } ],
  "message" : "Invalid Value"
}

如何设置此 q 参数以仅显示特定的共享驱动器详细信息?

4

1 回答 1

0

你错过了两件事:

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

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

错过上述任何步骤都将导致 400 错误,就像您收到的那样。

于 2020-11-09T08:40:58.027 回答