【发布时间】:2020-03-27 18:19:54
【问题描述】:
我一直在尝试让 Apps 脚本在提交 Google 表单后执行操作。
我的问题是,触发器只有在以下情况下才起作用
- Apps 脚本绑定到 Google 表单
- 触发器是在绑定到的 Google 表单上创建的
这并不是说触发器不是在其他场景中创建的。他们只是不开火。
我正在尝试做的是让一个独立的应用脚本在任何表单上创建一个触发器。这是通过运行 Run > Test as addon 并选择我喜欢的任何形式来完成的。我有一个菜单,可以打开一个对话框,其中包含我的按钮,该按钮运行 google.script.run.withSuccessHandler(function(data) { }).makeTrigger();
当我在 script.google.com 打开我的仪表板并查看我的触发器时,它确实为我使用 Test as addon 打开的任何表单创建它们。它们使用“从表单 - 表单提交”事件正确设置,当我打开菜单到“打开触发容器”时,它会转到正确的表单。但是当我打开表单并做出响应时,它们实际上从未被触发(我的触发器中的“上次执行”列保持为空,并且我的端点没有收到任何帖子。)
只有在满足上述 2 个条件的情况下才会在提交时触发它们(我将我的应用程序脚本重新制作为绑定版本来测试这一点。)如果我在除它之外的任何其他表单上使用它,我的绑定版本也不起作用绑定到 -- 它做同样的事情,制作不可触发的触发器。
代码.gs
function formIsSubmitted(e) {
UrlFetchApp.fetch("https://test.free.beeceptor.com", {
'method': 'post',
'payload': 'from apps script'
});
}
function makeTrigger() {
var form = FormApp.getActiveForm();
ScriptApp.newTrigger('formIsSubmitted')
.forForm(form)
.onFormSubmit()
.create();
}
我已将我的插件在市场上不公开发布(等待审核。)这会解决问题,还是我遗漏了什么?
【问题讨论】:
-
有两个 onFormSubmit 触发器。一个附加到表格,一个附加到链接的电子表格。阅读本节:developers.google.com/apps-script/guides/triggers/events
-
@Cooper 我没有在这些表格中附加任何电子表格。这仍然是我的问题吗?如何将触发器创建功能更改为用于表单提交?我在文档中看不到任何代码示例。