我想为谷歌表单创建一个独立的插件,它应该通过在谷歌驱动器中创建一个包含表单响应内容的新文本文件来处理表单提交事件。然后将这个附加组件分发给其他用户。 我的目标是用户可以在谷歌表单上安装插件,它应该可以工作,而无需从插件菜单进行额外设置。
在测试时,我发现有可用的简单和可安装触发器。(onFormSubmit
是可安装触发器)每次在 G-Suite Marketplace 上更新插件时,可安装触发器都会清除。因此它删除了我的onFormSubmit
触发器,因此安装的插件在 update 后停止工作。
onFormSubmit
触发器以这种方式添加到onInstall
简单触发器中:
function onInstall() {
var form = FormApp.getActiveForm();
var trigger = ScriptApp.newTrigger('respondToFormSubmit')
.forForm(form)
.onFormSubmit()
.create();
}
我想通过处理链接电子表格的onFormSubmit
简单触发器来绕过这个问题。onEdit
实际上,它可以检查电子表格中的新行,然后创建一个新文件。但是简单触发器没有对私人服务(如谷歌驱动器)的授权,因此不可能在简单触发器内的谷歌驱动器上创建文件。
有没有办法onFormSubmit
在发布新版本的附加组件后保持触发,而无需手动重新安装?好吧,这些都是合理的,但是为什么onInstall
没有再次引发事件呢?或者可能有一个事件onUpdate
来处理附加更新?
更新
我在这里读到:
附加触发器将在以下任何情况下停止触发:
- 如果用户卸载了插件
- 如果插件在文档中被禁用(如果重新启用,触发器将再次变为可操作)
- 如果开发者取消发布插件或向插件商店提交损坏的版本
我只是在发布表单中设置了下一个版本号,单击“更新网上商店草稿”,并在新窗口中确认更新。我做的一切都正确吗?
即使没有修改代码,触发器也会停止触发,只需使用新版本的附加组件。并且堆栈驱动程序控制台中没有任何日志错误。这可能是一个错误吗?