Drive.Permissions.create参数错误及文件未找到问题求助
问题分析与解决方案
一、参数数量错误的原因及修正
你最初的代码错误在于**Drive.Permissions.create()的参数结构不符合API要求**:
- 该方法的正确参数顺序为:
- 第一个参数:权限配置的
resource对象(包含role、type、emailAddress) - 第二个参数:目标文件/文件夹的
fileId - 第三个参数(可选):额外配置项(如
sendNotificationEmail、supportAllDrives等)
- 第一个参数:权限配置的
你最初的代码把fileId和sendNotificationEmail都塞进了第一个对象里,导致API识别到的参数数量不符合要求(实际只传了1个参数,而非预期的2-3个)。
关于Drive服务与高级Drive API的区别
- 普通
DriveApp是Google Apps Script封装的简化服务,而Drive.Permissions属于高级Drive API,需要手动启用:- 在脚本编辑器中,点击顶部菜单「资源」→「高级Google服务」
- 在弹出的面板中找到「Drive API」,将状态切换为「开启」
- 若提示需要关联Google Cloud Platform(GCP)项目,按指引完成关联并在GCP控制台中启用Drive API
二、"File not found"错误的排查方向
修改参数结构后仍出现文件找不到的问题,可从以下几点排查:
- 确认ID正确性:检查
instrumentGroups[nCounter].FolderID返回的字符串是否完全匹配目标文件夹/文件的ID,避免空格、多余字符或拼写错误。可直接用ID访问https://drive.google.com/drive/folders/[你的FolderID]验证是否能打开。 - 共享驱动器权限配置:若目标文件夹在共享驱动器(Team Drive)中:
- 确保
supportAllDrives: true已正确设置(你当前代码已包含,但需确认API版本支持该参数) - 移除不必要的
useDomainAdminAccess: true:该参数仅用于域管理员以管理员身份访问用户私有文件,若目标是共享驱动器,此参数可能导致权限冲突。
- 确保
- 脚本执行权限:确认脚本执行的账号(即你当前登录的账号)对目标文件夹拥有至少「编辑者」权限,即使是超级管理员,若未被添加到共享驱动器成员列表中,也无法通过API访问。
- API权限范围:脚本授权时需确保已请求足够的Drive权限(如
https://www.googleapis.com/auth/drive),可重新授权脚本:点击编辑器顶部「运行」→「授权」,按流程重新授予权限。
内容的提问来源于stack exchange,提问作者Peter Morris
相关产品推荐
相关产品推荐

