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

时间:2019-03-18 17:38:37

标签: google-apps-script google-sheets triggers

在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();

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

那么,是否有一种方法可以创建触发器来通过代码调用具有特定参数集的函数,而无需创建包装函数?

或者,如果不可能的话,

有没有一种方法可以创建这些包装器函数,或者一些表示它们的函数别名,而无需手动输入代码?

1 个答案:

答案 0 :(得分:0)

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