使用Drive API与Google Apps Script重命名复制表格的GAS项目遇障
解决方案:绑定GAS项目的表格复制后重命名脚本项目
问题根源分析
- 首次"File not found"错误:确实和文件存储在共享云端(团队盘)有关,默认Drive API调用不支持团队盘,必须显式添加
supportsAllDrives: true参数。 - 添加参数后"mediaData"错误:调用
Drive.Files.update时参数顺序错误。该方法的正确签名是Drive.Files.update(resource, fileId, mediaData, options),当仅修改元数据不需要上传媒体内容时,mediaData需传入null,否则系统会把传入的options对象当成媒体数据,导致类型不匹配报错。
修正后的代码
function canviarNomScript_retornaID(name_File, file, scriptID, year, name_Building, yearFolder) { var originalGASProjectName = "Script Plantilla " + name_Building; var newGASProjectName = "Script " + name_Building + " " + year; // 重命名脚本项目为新名称(正确传递参数:resource, fileId, null, options) Drive.Files.update({title: newGASProjectName}, scriptID, null, {supportsAllDrives: true}); // 复制表格文件到目标文件夹 var id_newFile = file.makeCopy(name_File, yearFolder).getId(); // 恢复原脚本项目名称 Drive.Files.update({title: originalGASProjectName}, scriptID, null, {supportsAllDrives: true}); return id_newFile; }
额外检查项
- 启用Drive API服务:在脚本编辑器中,依次点击「资源」→「高级Google服务」,找到「Drive API」并启用,确保状态为「ON」。
- 验证scriptID正确性:确认传入的
scriptID是绑定到模板表格的GAS项目的正确ID(可通过脚本编辑器的「文件」→「项目属性」查看)。 - 权限验证:确保执行脚本的账号对共享云端的模板文件和目标文件夹有编辑权限。
内容的提问来源于stack exchange,提问作者Arnau Amorós
相关产品推荐
相关产品推荐

