如何识别 Google Script 是作为触发器启动还是手动启动?

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

如何在 Google 脚本中识别脚本本身是由某些事件触发还是由某人启动?

google-apps-script triggers
3个回答
6
投票

从技术上来说这是可能的。如果您使用简单触发器,则不得从另一个函数调用该函数。在这种情况下,您只需使用您的函数,例如

onEdit(e)
并尝试检查
e
的值。例如检查
e.source
的值是多少。简单的触发器通常具有该值。查看此页面以查看您可以查找哪些事件处理程序。

使用可安装的触发器就更容易了。假设您有

function1(e)
,并为其设置了触发器。您现在可以检查是否有
e.triggerUid
的值。如果需要,您还可以使用该值来删除触发器!


0
投票

代码类似于:

let TRIGGERED = undefined;

function main(e) {
  console.log(e);

  if (e) {
    TRIGGERED = true;
  }
}

使用可安装的基于时间的触发器时,我得到以下信息

e
。简单触发器还将定义
e

{ year: 2024,
  'day-of-week': 2,
  second: 40,
  authMode: ScriptApp.AuthMode.FULL, // https://developers.google.com/apps-script/reference/script/auth-mode
  minute: 38,
  'day-of-month': 26,
  hour: 22,
  triggerUid: '470041830',
  timezone: 'UTC',
  month: 11,
  'week-of-year': 48 
}

-2
投票

我认为脚本没有办法知道这一点。这里列出了您可以使用的简单触发器:GAS-triggers。但也可以通过 GAS 编辑器 GUI 或调用函数的菜单项手动调用这些函数。

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