我正在尝试按照AppScript文档中指定的方式提交Google表单后创建新的触发器:
function onFormSubmit() {
const triggerName = 'myNewTrigger';
const sheet = SpreadsheetApp.getActiveSpreadsheet();
const trigger = ScriptApp.newTrigger(triggerName);
console.info(trigger);
trigger.forSpreadsheet(sheet).onFormSubmit().create();
}
function myNewTrigger(e) {
// perform some task
}
[当调用'ScriptApp.newTrigger'时,我希望返回一个TriggerBuilder实例,其中包括方法'forSpreadsheet'。
相反,空对象(即绝对没有属性或方法)会返回其位置,但在Google的Stackdriver日志记录中仍被报告为ScriptApp.TriggerBuilder的实例。
Exception: Unexpected error while getting the method or property forSpreadsheet on object ScriptApp.TriggerBuilder
我在这里缺少基本的东西吗?
编辑:感谢@TheMaster的建议。由于SpreadsheetApp.getActiveSpreadsheet()
返回null
是因为它是通过表单而不是电子表格的上下文触发的。]
通过将其更改为FormApp.getActiveForm().getDestinationId()
,我能够为链接的电子表格检索正确的文档ID。
我正在尝试按照AppScript文档中的规定在提交Google表单后创建新的触发器:ScriptApp.newTrigger函数onFormSubmit(){const triggerName ='...
感谢@TheMaster的建议。由于SpreadsheetApp.getActiveSpreadsheet()返回null的原因是它是通过表单而不是电子表格的上下文触发的。
通过将其更改为FormApp.getActiveForm()。getDestinationId(),我能够为链接的电子表格检索正确的文档ID。