以编程方式创建自动禁用触发器的表单

问题描述 投票:0回答:1

TL; DR:如何使用不会被禁用的触发器以编程方式创建表单。

function createdFormTrigger(e) {
  var result = {};
  var responses = e.response.getItemResponses();
  for (var i = 0; i < responses.length; i++) {
      var title = responses[i].getItem().getTitle();
      var response = responses[i].getResponse();
      result[title] = response;
  }
  var db = FirebaseApp.getDatabaseByUrl("https://firebase-livedata.com");
  var form = FormApp.getActiveForm();

  db.pushData(form.getTitle(), result)
}

function onFormSubmit(e) {
  var email = e.response.getRespondentEmail();
  var form = FormApp.create("Form " + e.response.getId())
  form.addEditor(email)
  ScriptApp.newTrigger('createdFormTrigger')
    .forForm(form)
    .onFormSubmit()
    .create();
}

我创建一个带有触发器(onFormSubmit)的表单,该触发器在表单提交时处于活动状态。触发器将以编程方式创建一个新表单,并将其分配给触发器createdFormTrigger。触发器已创建,但始终会自动被禁用(附有图片),有没有办法使它不会自动被禁用?

我已添加所需的库(Firebase),设置了作用域("https://www.googleapis.com/auth/forms""https://www.googleapis.com/auth/forms.currentonly"),并确保我运行了正确的表格。谁能帮我吗?

disabled trigger

javascript google-apps-script google-form gs-installable-triggers
1个回答
0
投票

触发器被自动禁用,因为触发器所连接的表单不包含有界脚本项目。

一种可能的解决方案,而不是从头开始创建表单,请复制一个已经具有受限脚本项目的表单副本,该脚本项目已经包含触发器要调用的功能。

© www.soinside.com 2019 - 2024. All rights reserved.