Google Drive API - 查询每个共享文件(与我共享或与其他人共享)

时间:2016-03-02 20:02:53

标签: google-api google-drive-api google-admin-sdk

通过Google Drive API有什么方法可以查询共享的每个文件?我指的是与我共享的文件或我与某人共享的文件。

我正在尝试这样的事情:

not 'me' in owners or ('me' in owners and not 'me' in writers and not 'me' in readers)

Howerver这不起作用,因为如果用户是文件的所有者,默认情况下该用户是作者和读者。

我不想查询用户的每个文件,然后检查我的应用程序是否参数shared=true,这会浪费处理时间,因为我正在为每个用户查询组织(通过全域代表团)

任何帮助都会非常感激

1 个答案:

答案 0 :(得分:0)

我知道这个问题已有四岁了,但是希望这个答案仍然对人们有帮助。

查询:

( ( 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