通过Google Drive API,有没有办法查询共享的每个文件?我的意思是与我共享或我与某人共享的文件。
我正在尝试这样的事情:
not 'me' in owners or ('me' in owners and not 'me' in writers and not 'me' in readers)
Howerver 这不起作用,因为如果用户是文件的所有者,默认情况下该用户是编写器和读取器。
我不想为用户查询每个文件,然后在参数shared=true
时签入我的应用程序,那将浪费处理时间,因为我正在为组织内的每个用户进行查询(通过全域授权)
任何帮助将不胜感激
这个问题已经有四年了,但希望这个答案仍然对人们有所帮助。
查询:
( ( not 'provideYourEmailAddressHere' in owners ) or ( visibility = 'anyoneCanFind' or visibility = 'anyoneWithLink' or visibility = 'domainCanFind' or visibility = 'domainWithLink' or visibility = 'limited' ) ) and trashed = false
应该做这个伎俩。 或者至少非常接近:)
owners
部分旨在查找与您共享的项目。 诚然,这个查询词在技术上是有缺陷的,因为人们可以与您分享东西,然后让您成为所有者。 这是对sharedWithMe = 'true'
查询词的改进,因为该查询词似乎返回我们拥有但保密的内容,考虑到目标的一部分是查找与我们共享的内容(不是源自我们),这太宽泛了。
visibility
部分是我们查找共享项目以供其他人访问的地方。 此术语具有列出的 v3 api 文档中的所有可能值,因为未共享的项目与这些术语都不匹配,但共享的项目可以匹配这些术语的各种组合。
最后,trashed = false
部分的目的应该是显而易见的。如果您确实要包含此类项目,那么当然要删除此查询词。
这个答案是基于文档在https://developers.google.com/drive/api/v3/ref-search-terms并使用文件列表 API 资源管理器进行了测试https://developers.google.com/drive/api/v3/reference/files/list