GCP部署的Google Sheets插件按钮触发脚本报PERMISSION_DENIED问题咨询
问题根因
你遇到的权限报错和按钮无法触发的问题,由两个核心原因导致:一是绑定到表格按钮的函数不符合Apps Script的全局可调用要求,二是附加组件的权限配置存在缺失。
修复步骤
- 修改绑定函数的定义
绑定到Sheets内置按钮的函数不能使用export修饰,export会将函数限定为ES模块私有作用域,Apps Script无法将其识别为可被容器触发器调用的全局函数。
修改后的测试函数如下:function fncTest() { } - 补充缺失的OAuth权限范围
报错提示读取存储权限被拒,需要在appsscript.json的oauthScopes数组中添加脚本存储权限,补充后的scopes配置如下:"oauthScopes": [ "https://www.googleapis.com/auth/script.container.ui", "https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/spreadsheets.currentonly", "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/script.storage" ] - 补充附加组件声明配置
部署为Sheets附加组件的项目必须在appsscript.json中声明addOns节点,明确扩展的触发范围,配置参考:"addOns": { "sheets": { "homepageTrigger": { "runFunction": "onHomepage" } } } - 检查GCP OAuth配置
- 进入GCP控制台的OAuth同意屏幕页面,确认你的附加组件未处于测试模式,或需要使用插件的账号已被添加到测试用户列表中
- 部署插件时,执行权限选择「所有用户」,安装类型选择「作为 Sheets 附加组件安装」
- 验证按钮绑定配置
按钮绑定的函数名直接填写fncTest即可,不要添加括号、模块前缀等多余字符。
内容的提问来源于stack exchange,提问作者dak
相关产品推荐
相关产品推荐

