我正在处理 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/