Я пытаюсь создать новый триггер при отправке формы Google, как указано в документации AppScript:
ScriptApp.newTrigger
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'.
Вместо этого вместо него возвращается пустой объект (то есть абсолютно никаких свойств или методов), но до сих пор сообщается, что он является экземпляром ScriptApp.TriggerBuilder в журнале Google Stackdriver.
Exception: Unexpected error while getting the method or property forSpreadsheet on object ScriptApp.TriggerBuilder
Я что-то упустил здесь из фундаментального?
Редактировать: Спасибо @TheMaster за их предложение. Поскольку SpreadsheetApp.getActiveSpreadsheet()
возвращал null
из-за того, что он вызывался с контекстом формы вместо электронной таблицы.
Изменив это значение на FormApp.getActiveForm().getDestinationId()
, я смог получить правильный документ идентификатор связанной электронной таблицы.