1

我在线查看了 google app script installable trigger docs ( https://developers.google.com/apps-script/support ),其中一个示例显示了 2 如何创建 2 个时间触发器。

function createTimeDrivenTriggers() {
  // Trigger every 6 hours.
  ScriptApp.newTrigger('myFunction')
      .timeBased()
      .everyHours(6)
      .create();

  // Trigger every Monday at 09:00.
  ScriptApp.newTrigger('myFunction')
      .timeBased()
      .onWeekDay(ScriptApp.WeekDay.MONDAY)
      .atHour(9)
      .create();
}

我的代码:

function createTimeDrivenTriggers() {
  // Trigger every 1 hours.
  ScriptApp.newTrigger('MainFunctionDaily')
      .timeBased()
      .everyHours(1)
      .create();

  // Trigger every Friday at 13:00.
  ScriptApp.newTrigger('MainFunctionWeekly')
      .timeBased()
      .onWeekDay(ScriptApp.WeekDay.FRIDAY)
      .atHour(13)
      .create();
}

但是,当我尝试创建触发器时,出现错误:

此插件在此文档中为此 Google 用户帐户创建了太多基于时间的触发器

请指教

4

2 回答 2

5

更新:附加组件的文档已移动。在这种情况下,以下提到的限制的新位置是https://developers.google.com/gsuite/add-ons/concepts/editor-triggers


在 Google Apps 脚本插件中,代表同一用户运行的函数无法在同一文档上创建两个相同类型的触发器。

来自https://developers.google.com/apps-script/guides/triggers/installable#limitations(强调我的):

一些限制
适用于附加组件中的可安装触发器:

每个附加组件只能具有每个类型、每个用户、每个文档的一个触发器。例如,在给定的电子表格中,给定的用户只能有一个编辑触发器,尽管用户在同一个电子表格中也可以有一个表单提交触发器或一个时间驱动的触发器。

替代方案是

  • 使用不同的帐户来创建每个触发器。
  • 为每个所需的触发器创建多个附加组件
  • 使用常规脚本而不是附加组件。
于 2018-06-29T14:44:06.157 回答
-1

两个可能的问题:

  1. 你的触发器相互矛盾
  2. 您可能需要在第二个触发器之前添加一个创建函数。

您可能只需要选择一个触发器,但您可以试试这个:

function createTimeDrivenTriggers() {
  // Trigger every 6 hours.
  ScriptApp.newTrigger('myFunction')
      .timeBased()
      .everyHours(6)
      .create();
}

function createTimeDrivenTriggers() {
  // Trigger every Monday at 09:00.
  ScriptApp.newTrigger('myFunction')
      .timeBased()
      .onWeekDay(ScriptApp.WeekDay.MONDAY)
      .atHour(9)
      .create();
}
于 2017-08-27T19:56:18.977 回答