为需要参数的Google Apps脚本函数创建触发器

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

在Google Apps脚本中通过ScriptApp类创建触发器时,触发器调用的函数的参数只是一个字符串,例如:

ScriptApp.newTrigger('renewAuthorization')
  .timeBased().everyMinutes(30)
  .create();

RenewAuthorization函数定义如下:

function renewAuthorization(key) {
  var refreshToken = PropertiesService.getScriptProperties()
      .getProperty(key + "_RefreshToken");
}

我正在处理的项目需要使用定义的键值触发此函数 - 因此我无法指示应该每隔30分钟使用一组参数触发函数,例如,传递给函数的字符串参数。

我知道我可以创建包装器函数来使用定义的键调用原始函数。我能做到这一点:

function callRenewAuthorizationForClient1(){
  RenewAuthorization("Client1")
}

然后以这种方式运行创建触发器的函数:

ScriptApp.newTrigger('callRenewAuthorizationForClient1')
  .timeBased().everyMinutes(30)
  .create();

但是出于所有实际原因,这不是一个选项,因为每次创建新密钥时都必须创建包装函数。

那么,有没有办法通过代码创建使用一组参数调用函数的触发器,而无需创建包装函数?

或者,如果这是不可能的,

有没有办法创建这些包装函数,或者可能是一些代表它们的函数别名,而不必手动进入代码?

google-apps-script google-sheets triggers
1个回答
0
投票

您将不得不使用另一个脚本属性,保存为“key”并首先获取其值。

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