You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google Drive API的files.list() q参数时返回无效值错误

Google Drive API files.list() q参数无效值错误解决方法

一、ownedByMe查询的错误修正

你尝试的'ownedByMe' = False这类写法存在两个关键错误:

  • 布尔值必须使用全小写的true/false,API不识别大写的False或带引号的'False'
  • 字段名不需要加引号,直接写ownedByMe即可

正确的查询语句示例:

listOfFiles = service.files().list(
    q="ownedByMe = false",
    fields='files(id, owners(emailAddress), modifiedTime, ownedByMe)'
).execute()

二、owners权限ID查询的错误修正

你写的owners has {permissionId=' + USER_ID + ' }完全不符合API的查询语法,针对特定用户ID的所有者查询,正确格式有两种:

  1. 使用in关键字:'user:{USER_ID}' in owners
  2. 使用has关键字:owners has user:{USER_ID}

修正后的代码示例:

USER_ID = "12275235249402556851"
# 两种写法二选一即可
query = f"'user:{USER_ID}' in owners"
# query = f"owners has user:{USER_ID}"

listOfFiles = service.files().list(
    q=query,
    fields='files(id, owners(emailAddress), modifiedTime, ownedByMe)'
).execute()

关键注意事项

服务账号是独立的身份,默认只能访问自身云端硬盘的文件。如果要查询普通用户的文件,必须满足以下条件之一:

  • 目标用户已将文件/文件夹共享给服务账号的邮箱(可在服务账号密钥文件的client_email字段找到)
  • 你的G Suite/Workspace管理员已为该服务账号启用域范围委派,允许其模拟域内目标用户操作

内容的提问来源于stack exchange,提问作者Green Shiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 17:23:11