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

如何使用Google Drive API访问「My Unit」目录下的全部文件?

问题解决方案

核心原因

你当前的配置错误本质是:服务账号默认访问的是自身独立的Google Drive存储空间,而非用户X的Drive空间,所以即便项目、服务账号层面配置了角色权限,也无法读取用户X名下的文件。

需补充的配置步骤

  • 如果你所在团队使用的是Google Workspace企业账号
    1. 前往Google Cloud控制台对应项目的「IAM与 admin > 服务账号」页面,找到你使用的服务账号,勾选「启用全域权限委派(Domain-wide Delegation)」选项,保存后复制服务账号的客户端ID
    2. 联系你的Google Workspace超级管理员,前往Workspace管理后台的「安全 > 访问权限和数据控制 > API 控制」页面,在「全域委派权限」板块新增授权,粘贴刚才复制的客户端ID,填入以下权限范围后保存:
    https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/drive.appdata
    
    1. 调用Drive API构造客户端时,新增subject参数,值为用户X的完整Google账号邮箱,用于模拟用户X的身份访问其个人Drive空间
  • 如果你使用的是个人Google账号(无法启用全域委派)
    1. 从服务账号的JSON密钥文件中取出client_email字段对应的邮箱地址
    2. 登录用户X的Google Drive,找到「My Unit」目录,右键选择「共享」,将上述服务账号邮箱添加为协作者,按需授予「查看者」/「编辑者」权限,勾选跳过通知即可
  • API调用参数调整
    1. 调用files.list接口时,新增q参数指定父目录为「My Unit」的目录ID,参数值示例:'[My Unit目录ID]' in parents
    2. 所有接口调用都新增supportsAllDrives=true、includeItemsFromAllDrives=true参数,避免共享目录/共享云端硬盘文件被过滤

验证方式

配置完成后先调用files.list接口不加q参数,确认返回用户X根目录下的文件列表,再指定父目录ID查询「My Unit」下的内容即可。


内容的提问来源于stack exchange,提问作者Javier Lopez Tomas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:06:00