Я пытаюсь прочитать список файлов из папки Drive.Я создал служебную учетную запись для проекта и добавил доступ клиента API к домену G-Suite, к которому я пытаюсь получить доступ, с областью действия https://www.googleapis.com/auth/drive.
Вот код, полученный изразличные источники,
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
AppIdentityCredential credential =
new AppIdentityCredential.Builder(Arrays.asList(DriveScopes.DRIVE)).build();
// API_KEY is from the Google Console as a server API key
GoogleClientRequestInitializer keyInitializer =
new CommonGoogleClientRequestInitializer("<my-service-account-key>");
Drive service = new Drive.Builder(httpTransport, jsonFactory, null)
.setHttpRequestInitializer(credential)
.setGoogleClientRequestInitializer(keyInitializer)
.setApplicationName("<my-service-account-name>").build();
String pageToken = null;
do {
StringBuilder query = new StringBuilder(
"'" + folderId + "' in parents and mimeType != 'application/vnd.google-apps.folder' and trashed = false");
FileList result = service.files().list()
.setQ(query.toString())
.setSpaces("drive")
.setFields("nextPageToken, files(id, name)")
.setPageToken(pageToken).execute();
// do something
} while (pageToken != null);
обновление Я развернул код для стандартного appengine, и он работает без исключения, за исключением того, что в нем регистрируется «файлы не найдены».Когда я изменяю запрос на «root», он возвращает 1 найденный файл «Начало работы ()», и, как ни странно, у меня нет к нему доступа, и я не получал электронное письмо, когда запрашивал доступ;)
В настоящее время расследование запроса ... запрос выглядит нормально, так как я могу получить доступ к папке, чтобы получить FileList ??