Google apps script 表单触发器中的错误源和响应
我用谷歌应用程序脚本设置了一个简单的工作流。我从表单a创建了脚本项目 以下是工作流程:Google apps script 表单触发器中的错误源和响应,google-apps-script,triggers,google-forms,Google Apps Script,Triggers,Google Forms,我用谷歌应用程序脚本设置了一个简单的工作流。我从表单a创建了脚本项目 以下是工作流程: 用户提交表单a的响应 脚本为表单B创建一个新的响应,提交它,并通过电子邮件向我发送编辑链接 我提交了为我创建的表单B的回复 脚本通过电子邮件向我发送了两种形式的摘要 为此,我以编程方式在表单B上设置了一个触发器: function addOnNewFormBSubmitTrigger() { ScriptApp.newTrigger('onNewFormBSubmit') .forForm(FOR
function addOnNewFormBSubmitTrigger() {
ScriptApp.newTrigger('onNewFormBSubmit')
.forForm(FORM_B_ID)
.onFormSubmit()
.create();
}
函数onNewFormBSubmit
如下所示:
function onNewFormBSubmit(formSubmitEvent) {
_sendAnalysisEmail(formSubmitEvent.source, formSubmitEvent.response);
}
var form = FormApp.openById('FORM_B_ID');
ScriptApp.newTrigger('onNewFormBSubmit')
.forForm(form)
.onFormSubmit()
.create();
该函数已触发,但formSubmitEvent.source
值是表单A,而formSubmitEvent.response
是此表单的最新响应。我希望源是表格B,因为我在上面附加了触发器
编辑:
即使传递一个表单实例而不是它的ID,也不能像我期望的那样工作
function addOnNewAlaysisSubmitTrigger() {
var form = FormApp.openById(FORM_B_ID);
ScriptApp.newTrigger('onNewFormBSubmit')
.forForm(form)
.onFormSubmit()
.create();
}
我遗漏了什么吗?您是否尝试使用表单作为参数,而不仅仅是他的Id 诸如此类:
function onNewFormBSubmit(formSubmitEvent) {
_sendAnalysisEmail(formSubmitEvent.source, formSubmitEvent.response);
}
var form = FormApp.openById('FORM_B_ID');
ScriptApp.newTrigger('onNewFormBSubmit')
.forForm(form)
.onFormSubmit()
.create();
谢谢@tehhowch,你在评论中给我的链接让我觉得如果脚本不是从表单创建的,它可能会工作。因此,我制作了一个POC,从一个电子表格创建脚本,它可以工作 这是我写的剧本: 这是两个函数生成的日志: 正如你所看到的,我从两份表格中得到了两份不同的回复。 现在的问题是,该事件不是文档中定义的提交表单事件:但这是另一个故事 如果您想尝试,以下是:
- 我从中创建表单和脚本的电子表格(在“日志”表中推送日志):
- 实时表单A(需要谷歌登录):
- 实时表单B(也需要谷歌登录):
- 剧本: