Вывод списка всех общих дисков с Google Диска
Я пытаюсь перечислить все общие диски из googledrive, используя метод Java List drive. это мой код.
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 в запросе, где имя папки = "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 для отображения только определенных сведений об общем диске?
1 ответ
Вам не хватает двух вещей:
- Недостаточно просто предоставить
foldername
, вы должны указатьname = 'foldername'
(имейте в виду, что это должно быть имя общего Диска, а не папки, содержащейся на этом Диске) - Как упоминалось в документации:
Для поиска определенного набора общих дисков установите для параметра useDomainAdminAccess значение true
Пропуск любого из вышеперечисленных шагов приведет к ошибке 400, как и полученная вами.