我有一个 Google 电子表格,它从两种不同的表单中获取信息。
使用电子表格 UI 手动触发无法区分在触发器菜单中选择“OnFormSubmit”时指定的表单。
因此,我使用以下代码(对于我的工作表)来管理两个不同表单提交的两个不同触发事件:
function onOpen(e) {
var form = FormApp.openById('ID of Form 1');
ScriptApp.newTrigger('onForm1Submit')
.forForm(form)
.onFormSubmit()
.create();
var signup = FormApp.openById('[ID of Form 2]');
signup.setRequireLogin(true)
ScriptApp.newTrigger('SignUpEvent')
.forForm(signup)
.onFormSubmit()
.create();
}
function SignUpEvent(e) {
\\stuff
}
function onForm1Submit(e) {
\\stuff
}
但是当我这样做时,我收到了表单提交失败的通知:
功能:更新梯形图
错误消息:“执行该操作需要授权。”
触发器:“formSubmit”
首先,我如何接收这些电子邮件通知?我没有手动要求错误消息的电子邮件通知。 其次,我获得“授权”的最佳方式是什么?
最佳答案
对于 onFormSubmit()
函数,您可以编写代码以将目标工作表与特定函数相匹配。例如,我有一个电子表格,其中有 2 个表单,其中都有用于目的地的工作表。在 onFormSubmit()
触发代码中,我做了以下操作:
function onFormSubmit(e) {
Logger.log("[METHOD] onFormSubmit");
var sheet = e.range.getSheet();
var sheetId = sheet.getSheetId();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var student = ss.getSheetByName("Student Requests");
var studentId = student.getSheetId();
var teacher = ss.getSheetByName("Teacher Requests");
var teacherId = teacher.getSheetId();
if (sheetId == studentId){
sendStudentEmail(e.range);
}
if (sheetId == teacherId){
sendTeacherEmail(e.range)
}
}
因此,在此示例中,教师可以使用表单进行请求,如果 onFormSubmit
与教师表单相关,则发送教师电子邮件等。
关于javascript - 多个表单触发到单个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29130812/