【问题标题】:Google Drive API - Query every shared file (shared with me or I shared with someone else)Google Drive API - 查询每个共享文件(与我共享或我与其他人共享)
【发布时间】:2016-06-15 21:11:48
【问题描述】:

是否可以通过 Google Drive API 查询每个共享的文件?我的意思是与我共享或我与某人共享的文件。

我正在尝试这样的事情:

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

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

我不想为用户查询每个文件,然后在我的应用程序中检查参数 shared=true,这将浪费处理时间,因为我正在为组织内的每个用户进行查询(通过域范围的委托)

任何帮助将不胜感激

【问题讨论】:

  • 有一个搜索参数可以帮助你。据我了解,sharedWithMe 将检索与授权用户共享的文件(无论是您共享它还是其他用户共享它)。您可以在 Drive API 文档的 Search for Files 页面查看其他对您有益的参数
  • sharedWithMe 仅返回其他用户与您共享的文件和文件夹。我需要的是我与其他人共享的文件和文件夹。我检查了你提到的页面,但没有说任何关于 @adjuremods 的内容
  • 好吧,这对我来说是个新闻。是的,这可能是 API 的限制。由于您是唯一经过身份验证的人,因此它将仅获取您共享的文件。

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


【解决方案1】:

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

查询:

( ( 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 explorer 进行测试 https://developers.google.com/drive/api/v3/reference/files/list

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多