【问题标题】:Can a standalone script create a trigger for another script which is bound to a spreadsheet?独立脚本可以为绑定到电子表格的另一个脚本创建触发器吗?
【发布时间】:2015-11-26 00:59:40
【问题描述】:

我正在尝试为电子表格绑定脚本创建可安装的 onEdit 触发器。我想使用单独的独立脚本以编程方式执行此操作。根据文档,这看起来应该是可能的:

请注意,与简单的 onOpen() 触发器不同,可安装触发器的脚本不需要绑定到电子表格。要从独立脚本创建此触发器,只需将 SpreadsheetApp.getActive() 替换为对 SpreadsheetApp.openById(id) 的调用即可。 https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_programmatically

但是,当我运行下面的代码时,触发器被添加到独立脚本项目而不是目标、电子表格绑定脚本中。

function createSpreadsheetEditTrigger() {
  var ss = SpreadsheetApp.openById('1vcAgQ6vPZiILFX0fB_jojyrSdGKr7goD_iCQcFsImEM');
  ScriptApp.newTrigger('update')
   .forSpreadsheet(ss)
   .onEdit()
   .create();
}

我错过了什么?

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    嗯,这可能是可能的,但不是那样的。我认为您误解了文档。换句话说,它的意思是:要创建可安装的触发器,脚本不需要绑定到目标电子表格。但是触发器是针对运行脚本本身的,一如既往。没有为另一个脚本安装触发器。

    脚本只能为自己设置触发器,没有API可以为另一个脚本设置触发器。

    您可以将有界脚本发布为网络应用程序,然后远程独立脚本可以调用其 URL,基本上“告诉”有界脚本是时候设置其可安装触发器了。

    【讨论】:

    • 谢谢,现在这更有意义了。所以告诉我这是否正确:我可以创建一个具有两个函数(例如 functionA() 和 functionB())的独立项目,并让 functionA() 创建一个触发器,该触发器将在编辑给定的电子表格时调用 functionB()。
    猜你喜欢
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多