Google Drive API, чтобы получить все дети не работает, если я динамически передаю fileId на запрос - PullRequest
1 голос
/ 23 мая 2019

Я пытаюсь Google Drive API для поиска родителей папки.В поисковом запросе я должен передавать идентификатор файла динамически, а не жесткое кодирование.Я попробовал ниже код.но я получаю файл, не найденный json response.

здесь он не принимает fileId в качестве значения, я думаю, что он считается String, если я жестко закодировал значение, которое он работает.FileList result = service.files (). List (). SetQ ("name = 'testfile'") .execute ();

    for (com.google.api.services.drive.model.File file : result.getFiles()) {
        System.out.printf("Found file: %s (%s)\n",
            file.getName(), file.getId());

       String fileId =file.getId();

        FileList childern =  service.files().list().setQ(" + \"file.getId()\" in parents").setFields("files(id, name, modifiedTime, mimeType)").execute();

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Это должно помочь.

String fileid=file.getId()

 service.files().list().setQ("'" + fileId + "'" + " in parents").setFields("files(id, name, modifiedTime, mimeType)").execute();

Убедитесь, что у вас есть действительный file.getId()

0 голосов
/ 23 мая 2019

Я знаю, что ваш вопрос гласит java, но единственный образец этой работы находится на C #.Другая проблема, насколько я знаю, PageStreamer.cs не имеет эквивалента в клиентской библиотеке Java.

Я надеюсь, что C # и Java достаточно близки, что может дать вам некоторыеидеи о том, как заставить его работать в Java.Мои знания Java - это базовые цитаты, но я могу помочь вам отладить их, если вы хотите попытаться преобразовать это.

try
            {
                // Initial validation.
                if (service == null)
                    throw new ArgumentNullException("service");

                // Building the initial request.
                var request = service.Files.List();

                // Applying optional parameters to the request.
                request = (FilesResource.ListRequest)SampleHelpers.ApplyOptionalParms(request, optional);

                var pageStreamer = new Google.Apis.Requests.PageStreamer<Google.Apis.Drive.v3.Data.File, FilesResource.ListRequest, Google.Apis.Drive.v3.Data.FileList, string>(
                                                   (req, token) => request.PageToken = token,
                                                   response => response.NextPageToken,
                                                   response => response.Files);

                var allFiles = new Google.Apis.Drive.v3.Data.FileList();
                allFiles.Files = new List<Google.Apis.Drive.v3.Data.File>();

                foreach (var result in pageStreamer.Fetch(request))
                {
                    allFiles.Files.Add(result);
                }

                return allFiles;
            }
            catch (Exception Ex)
            {
                throw new Exception("Request Files.List failed.", Ex);
            }
...