Вы правы, это невозможно
Я считаю, что у меня есть результаты, похожие на вас:
Параметр q
условия поискового запроса
Для поиска файлов используйте параметр q
в files: files.list.
В цитированной выше статье есть много параметров для файлов на вашем основном диске, например: writers
, owners
, readers
.
Но если бы я сделал какой-либо запрос с запросом, содержащим in writers
или in owners
, если бы я мог редактировать файл только потому, что я был членом родительского общего диска, он бы не отобразился. Это могло бы появиться только в том случае, если бы кто-то вошел в отдельный документ и дал мне разрешение на редактирование.
Я мог бы использовать другие q
параметры, такие как fullText
, и это без проблем возвращало бы элементы общего диска.
ОБНОВЛЕНИЕ: похоже, Google теперь осведомлен об этой проблеме, https://issuetracker.google.com/171363628. Пойдите и поставьте ☆, чтобы они знали, что это влияет на вас.
Возможные обходные пути
Вы, вероятно, хорошо их знаете, но я все равно перечислю их для будущих пользователей.
Ограничьте поля
Справочник
Например, используя запрос со следующими параметрами:
corpora = allDrives
includeItemsFromAllDrives = true
pageSize = 1000
supportsAllDrives = true
fields = files/id, files/name, files/capabilities/canEdit
key = [YOUR_API_KEY]
Что включает в себя значительное ограничение возвращаемых полей для повышения производительности и эффективности. В этом случае возвращаются только идентификатор, имя и логическое значение, указывающее, может ли пользователь редактировать. В этом запросе pageSize
установлено на максимально допустимое значение.
Получив этот ответ, вы можете отфильтровать его в памяти. Как ты и предположил.
Сделайте несколько запросов
Я не уверен, возникают ли у вас проблемы с квотами, и в этом случае этот вариант может оказаться для вас непрактичным.
Если вы не прочь сделать несколько вызовов API, стоит определить общие диски, к которым у вас есть доступ для редактирования. По необходимости у вас будет доступ для редактирования в файлы, содержащиеся в нем. После того, как вы определили, можете ли вы редактировать определенный общий диск. Вы можете сделать запрос для каждого общего диска и для вашего основного диска. Что в зависимости от того, сколько у вас общих дисков и как часто они меняются, может быть для вас достаточно практичным.
Если общие диски вообще не меняются очень часто, вы можете просто сохранить список идентификаторов общих дисков, который вы можете периодически обновлять с помощью автоматического сценария. Значит, вы делаете на один запрос меньше.
person
iansedano
schedule
14.10.2020