如何使用Google Drive API v3搜索“未”与我共享的文件?

8

根据API文档,您可以像在“trashed”中一样搜索“sharedWithMe”:

trashed      boolean    =, !=   Whether the file is in the trash or not.
sharedWithMe boolean    =, !=   Files that have been shared with the authorized user.

诸如“已删除”、“未删除”和“已删除 = false”的查询都按预期工作。 "sharedWithMe" 也可以正常使用。

然而,“not sharedWithMe”或“sharedWithMe=false”不起作用。这是正确的语法还是一个错误?

示例:q = not + sharedWithMe

错误:

"domain": "global",
"reason": "invalid",
"message": "Invalid Value",
"locationType": "parameter",
"location": "q"

在查看了同样的文档后,我发现对于'sharedWithMe'字段,使用'='和'!='。因此,“未与我共享”必须像编程中一样使用'!='。 - ReyAnthonyRenacia
2
是的,与垃圾箱相同。但是 sharedWithMe=false 不起作用。我也尝试了 !sharedWithMe,但也没有成功。 - rmuller
1个回答

2
我认为这个问题是Google Drive API实现中的一个错误。
我正在解决这个问题(使用Python),通过使用从每个列表请求返回的“sharedWithMeTime”属性。 在获取所有项目(无论是否共享)后,我测试每个项目是否存在“sharedWithMeTime”属性。 如果不存在,则该项目必须是“未与我共享”,这就是我想要使用的查询,但是却遇到了OP所描述的错误。
Python文档中有关列表请求的链接如下: https://developers.google.com/resources/api-libraries/documentation/drive/v3/python/latest/drive_v3.files.html#list

这个解决方法仍然可能存在问题,因为结果将包括对任何域上可见的文件(没有sharedWithMeTime属性),但这些文件也不在“我的Drive”中。 - MitchN
"ownedByMe" 或许是一个不错的指示词,可以表示难以捉摸的“未与我共享”。 - MitchN
4
在类似问题的评论中提到,使用“meowners中”可能是一个不错的选择,至少对于某些情况而言。 - antishok

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接