Google Sheets绑定脚本授权范围设置困惑及相关问题咨询
解决方案:缩小Apps Script授权范围、限制脚本编辑权限及重新触发授权
一、缩小OAuth范围到仅当前表格
有两种可靠方法实现范围限制,均不会影响现有功能:
- 方法1:使用
@OnlyCurrentDoc注释
在脚本的最顶部添加注释,系统会自动将权限锁定为当前绑定的表格:/** * @OnlyCurrentDoc */ - 方法2:手动修改项目清单文件
- 在脚本编辑器中,点击「查看」→「显示项目清单文件」,打开
appsscript.json。 - 将原有的全范围权限配置替换为仅当前表格的权限:
"oauthScopes": [ "https://www.googleapis.com/auth/spreadsheets.currentonly" ]
- 在脚本编辑器中,点击「查看」→「显示项目清单文件」,打开
- 功能验证:上述两种方式都不会影响已有的可安装
onEdit触发器,也能正常编辑受保护标签——只要触发器是由表格所有者或授权编辑者创建的,权限就会保持有效。
二、限制脚本的编辑权限
绑定脚本默认继承表格的编辑权限,要单独管控脚本权限,需将其转为独立项目:
- 在脚本编辑器中,点击「文件」→「项目另存为」,保存为独立的Apps Script项目。
- 打开独立项目页面,点击右上角「共享」,设置仅允许所有者和指定编辑者拥有脚本编辑权限,其他表格编辑者设为「查看者」或「无访问权限」。
- 返回原表格,删除旧绑定脚本,通过「扩展程序」→「Apps Script」将独立项目重新绑定到表格,或直接在表格中调用脚本功能(如自定义菜单)。
这样即使表格有多个编辑者,也无法篡改脚本内容,避免权限被恶意修改。
三、重新触发授权范围选择对话框
按以下步骤重置授权缓存,即可重新弹出权限确认窗口:
- 在脚本编辑器右上角点击用户头像,选择「管理您的Google账户」。
- 进入「安全」→「第三方应用访问权限」,找到对应Apps Script项目,点击「移除访问权限」。
- 返回脚本编辑器,运行任意需要授权的函数(如原
onEdit关联函数),系统会重新弹出授权范围选择的安全警告对话框。
内容的提问来源于stack exchange,提问作者Peter Isakson
相关产品推荐
相关产品推荐

