问题描述
我正在开发google-sheeets插件。
我想创建函数来创建与各个电子表格相关的触发器。 我认为GAS SpreadSheetTriggerBuilder实现了此功能,但是我不知道项目添加和发布时的行为。
附加用户添加到每个电子表格中的触发器将被共享?
例如, A和B将加载项安装到自己的电子表格中。 带有附件的添加Triger,然后B就能使用A添加到工作表的Triger?
解决方法
使用SpreadSheetTriggerBuilder building a trigger时,将创建可安装的触发器
这意味着:
- 触发器在创建者的授权下运行-并将代表安装触发器的人执行绑定功能
- 换句话说-如果您的附件安装了
onEdit
触发器-该触发器将向所有编辑电子表格但被授权为安装触发器的人的用户触发 - 但是,当您构建触发器时,它仅适用于您需要定义的特定电子表格,例如
var sheet = SpreadsheetApp.getActive();
ScriptApp.newTrigger("myFunction")
.forSpreadsheet(sheet)
.onEdit()
.create();
- 也就是说,如果用户A在打开电子表格A时创建触发器A,而用户B在打开电子表格B时创建触发器A-这些触发器将不会进行推断。触发器A仅在编辑电子表格A时触发,触发器B仅在编辑电子表格B时触发。