0

我成功地使用该q参数过滤了 Google Drive 中名称不是给定值的文件,代码如下。

    prefix = 'forbidden_name'
    res = files.list(
                     q="name != '" + prefix + "'",
                     pageSize=800, pageToken=None,
                     fields='nextPageToken, files(id, name, parents, properties, ownedByMe)').execute()

我使用相同的服务帐户来创建这些文件并列出它们。

然后,我想只过滤由此服务帐户创建的那些。为此,我尝试使用Google 文档 (Google API v3)ownedByMe中列出的参数。

但我收到以下错误。

    res = files.list(
                     q="ownedByMe = true",
                     pageSize=800, pageToken=None,
                     fields='nextPageToken, files(id, name, parents, properties, ownedByMe)').execute()
HttpError: <HttpError 400 when requesting https://www.googleapis.com/drive/v3/files?q=ownedByMe+%3D+true&pageSize=800&fields=nextPageToken%2C+files%28id%2C+name%2C+parents%2C+properties%2C+ownedByMe%29&alt=json returned "Invalid Value">

此外,当尝试过滤时properties,例如使用 key data_type,我收到以下错误。

    res = files.list(
                     q="properties['data_type'] = 'whatever'",
                     pageSize=800, pageToken=None,
                     fields='nextPageToken, files(id, name, parents, properties, ownedByMe)').execute()
HttpError: <HttpError 400 when requesting https://www.googleapis.com/drive/v3/files?q=properties%5B%27data_type%27%5D+%3D+%27whatever%27&pageSize=800&fields=nextPageToken%2C+files%28id%2C+name%2C+parents%2C+properties%2C+ownedByMe%29&alt=json returned "Invalid Value">

请问,知道我的代码有什么问题吗?非常感谢你的帮助!最好的,

4

1 回答 1

1

不幸的是,在当前阶段,并没有查询ownedByMe = trueand properties['data_type'] = 'whatever'。我认为这是您的问题的原因Invalid Value。那么下面的修改呢?

模式一:

在这种模式下,ownedByMe = true是实现的。在这种情况下,请使用以下搜索查询。

修改后的搜索查询:

'###' in owners
  • 在您的情况下,###是服务帐户的电子邮件。

模式二:

在这种模式下,properties['data_type'] = 'whatever'是实现的。在这种情况下,请使用以下搜索查询。

修改后的搜索查询:

properties has {key='data_type' and value='whatever'}

参考:

于 2020-08-21T23:04:48.210 回答