Google Apps Script中DriveApp.getFolderById访问新文件夹报错如何解决
解决方案
你可以按照下面的步骤逐一排查解决:
- 修正OAuth访问作用域
drive.file是Apps Script默认的窄权限作用域,仅允许访问脚本自身创建、或是用户通过文件选择器主动授权过的Drive文件/文件夹,你手动新建的文件夹不在授权范围内就会触发该报错,修改方法如下:
- 打开你的Apps Script项目,进入「项目设置」页,勾选「在编辑器中显示
appsscript.json清单文件」 - 回到代码编辑器,打开根目录下的
appsscript.json文件,添加/修改oauthScopes字段如下:
{ "timeZone": "你的项目时区", "dependencies": {}, "oauthScopes": [ "https://www.googleapis.com/auth/drive" ], "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8" }
如果只需要读取Drive内容,可以将作用域替换为https://www.googleapis.com/auth/drive.readonly降低权限风险。
- 清除授权缓存重新授权
- 点击项目右上角的用户头像,选择「管理此应用的帐户访问权限」,移除当前账号对该脚本的所有授权
- 重新运行任意脚本函数,按照提示重新完成授权,确保授予了Drive访问权限。
- 排除元数据同步延迟问题
如果修改权限后依然报错,可能是Drive后端的新建文件夹元数据同步延迟导致:
- 打开你的云端硬盘网页端,将报错的文件夹移动到其他目录,等待10秒后再移动回原位置,触发元数据刷新
- 用下面的测试代码单独验证访问:
try{ var outbox = DriveApp.getFolderById("ZORMTHISISAVALIDIDPicaX9r"); console.log("访问成功,文件夹名称:" + outbox.getName()); }catch(e){ console.error(e.toString()); }
- 排除隐形字符干扰
将你使用的文件夹ID粘贴到纯文本编辑器中,开启不可见字符显示,确认没有零宽空格、首尾空格、换行符等隐形字符,这类字符复制时容易被附带但肉眼不可见。
你提到的报错截图如下:
内容的提问来源于stack exchange,提问作者SuperWoman
相关产品推荐
相关产品推荐

