Запросы в google drive api для поиска файлов - PullRequest
0 голосов
/ 19 июня 2019

Я не могу понять, как установить ImageMediaMetadata.Width в запросе. Руководства Api Google Drive мне не помогли. Я не могу использовать внутреннее свойство, используя их пример.

appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' }

Кто-нибудь понял, как использовать внутренние поля переменных?

FileList result = service.files().list()
                .setPageSize(20)
                .setFields("nextPageToken, files(*)")
                .setQ("trashed = false and imageMediaMetadata has { width < 1920 }")
                .execute();

1 Ответ

0 голосов
/ 19 июня 2019

Проблема заключается в том, что при попытке получить атрибут downloadUrl в file.downloadUrl, который больше не существует в Drive API версии 3 (это было в версии 2),проверьте v2 [1] и v3 [2].

Вместо этого вы должны использовать атрибут webContentLink для загрузки файла, который доступен для файлов с бинарным содержимым, таких как изображения, PDF и т. Д., Но не для документов и листов Google (это толькодоступен атрибут webViewLink , который является URL-адресом файла) [2].Для этих случаев (документов и листов) вы можете реализовать метод import , который работает для преобразования документов Google и возвращает объект файла [3].

Запрос на импорт будет выглядеть следующим образом:

var request = gapi.client.drive.files.import({ 'fileId': fileId, 'mimeType': mimeType });

С mimeType для нужного целевого документа (pdf, txt и т. Д.).Затем, внутри обратного вызова, получите доступ к атрибуту, используя file.webContentLink, как и в других случаях.

[1] https://developers.google.com/drive/api/v2/reference/files

[2] https://developers.google.com/drive/api/v3/reference/files

[3] https://developers.google.com/drive/api/v3/reference/files/export

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...