【发布时间】:2020-05-04 11:18:36
【问题描述】:
我正在尝试以编程方式将触发器添加到 Google Apps 脚本 - 我有一个函数 main() 我想安排,它使用像这样的 ScriptApp.newTrigger().create() 调用包装另一个基于时间的触发器调用
function main(){
/*
* do stuff
*/
doScriptCallback();
}
function doScriptCallback(){
if(CONFIG.CALLBACK_SCRIPT_NAME != ''){
try {
ScriptApp.newTrigger(CONFIG.CALLBACK_SCRIPT_NAME)
.timeBased()
.after(5000)
.create()
Logger.log('Scheduled ' + CONFIG.CALLBACK_SCRIPT_NAME);
} catch(e) {
Logger.log(e);
}
}
}
从编辑器运行main() 正确运行doScriptCallback() 并在CONFIG.CALLBACK_SCRIPT_NAME 中调度函数
但如果我安排main(),那么doScriptCallback 只会记录消息,但函数不会运行。
这是 Google Apps 脚本中的限制吗?
【问题讨论】:
-
也许我还没有完全理解你的问题;我用
CONFIG.CALLBACK_SCRIPT_NAME作为main对此进行了测试,这似乎没有问题。您从哪里获得要作为函数名称插入触发器的值? -
CONFIG 只是页面顶部的自定义对象。 CALLBACK_SCRIPT_NAME 是我想以编程方式安排的不相关脚本。 Main() 从 UI 安排为每天运行。 doScriptCallback() 只是一个包装器,用于为配置对象中引用的脚本名称设置时间表。
-
你在哪里设置
CONFIG.CALLBACK_SCRIPT_NAME;这是在main() { //do stuff }里面吗? -
不,它是一个位于代码顶部的全局范围变量。
标签: google-apps-script triggers