javascript - Google App 脚本触发器 ID 格式

标签 javascript google-apps-script google-apps

我正在处理 Google Spreadsheet 的项目,我正在通过脚本添加/删除 TimeBased 触发器。

触发的所有触发器将运行一个函数,该函数将检查其 Id 并相应地运行函数。

我正在保存启动触发器并使用此代码保存它的 ID。

function startTimer(rn) {
  var triggerid = ScriptApp.newTrigger('mainFunction')
      .timeBased()
      .everyMinutes(1)
      .create().getUniqueId();

  SpreadsheetApp.getActiveSheet().getRange(1, 8).setValue(triggerid);
}

此函数以 '6295890543675972447' 格式保存触发器 ID

现在触发触发器并运行函数“mainFunction”。 使用此代码,我试图获取触发器的 ID。

function mainFunction(e) {
  var triggerId = e.triggerUid;
  Logger.log(triggerId);
}

此时,我得到了格式为“6.29589E+18”的触发器 ID
如果我尝试使用 toString() 方法更改格式,格式将更改为 '6295890543675973000'

我无法将两种格式都匹配到我保存的 ID。

知道如何以添加触发器时的格式取回 id 吗?


谢谢

最佳答案

我在这上面花了几个小时,脱掉了一些头发。 我找到了this page .它有一段奇怪的代码,当你在其中传递 e.triggerUid 时,而不是直接使用它时,它会奇怪地工作:

function getFileByTriggerId(triggerId){
  var triggers = ScriptApp.getProjectTriggers();
  for(var i =0; i<triggers.length; i++){
    if(triggers[i].getUniqueId() == triggerId){
      return triggers[i].getTriggerSourceId();
    }
  }
}

希望对大家有帮助

关于javascript - Google App 脚本触发器 ID 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39057177/

相关文章:

javascript - Google App 脚本 - 日期作为字符串操作

go - 如何忽略 Golang 的 Google Datastore 结构中的零值?

javascript - 试图找出为什么函数(参数)没有按预期进行控制台日志记录

javascript - 文本区域调整大小的移动浏览器问题

javascript - 如何让机器人将 DM 发送给特定的人?

javascript - 在 Google 表格脚本中获取值时的最佳实践

javascript - 在选项卡 Material 设计精简版中添加图标按钮

google-apps-script - 如何使用 onChange 事件通过 Google Sheets Apps 脚本检测已删除的行

javascript - 将 "password"类型添加到 Google Apps 脚本输入框

google-apps-script - 按名称打开 Google 文档电子表格