如何通过带有事件源电子表格的独立脚本在特定部署上创建可安装触发器?

时间:2019-09-28 18:40:32

标签: google-apps-script google-sheets

背景: 我一直在学习Google Apps脚本,现在有一个供个人使用的独立的Google Apps脚本项目,在其中我创建了一个可安装触发器,该触发器已配置了事件源:“从电子表格”,并以编程方式创建了它(无法找到通过Web界面(“编辑”菜单->当前项目的触发器)创建触发器的方法,因为事件源下拉列表仅显示“定时”和“来自日历”作为选择。)

几周前,我到达了将电子表格和脚本项目分为“生产”和“开发”版本的地步,到目前为止,当我要发布时,我只是将开发代码复制/粘贴到生产项目中新版本。

看来,执行此操作的更好方法是利用Deployments逻辑,以便我可以使用HEAD部署通过开发从单个代码库支持两种环境,然后为生产。

问题: 我在这里遇到的问题是,在创建新的部署后,我看不到将我新创建的“生产”部署关联起来以能够从任何电子表格中获取事件的方法。如果我尝试通过编辑->当前项目的触发器->创建触发器手动创建触发器,则可用选项允许我选择要用于的部署,但不允许我选择“从电子表格”作为事件源;并且如果我以编程方式创建触发器,则可以正确地关联事件源,但是它创建与HEAD部署相关联的触发器,并且看不到指定其他部署的任何方式。

ScriptApp.newTrigger('ss_onEdit')
  .forSpreadsheet(idSs)
  .onEdit()
  .create();

我曾想过,也许我可以更改触发器所针对的部署,即创建后的工作,但是选择其他部署的下拉菜单为灰色。

是否可以做我想做的事情?我对这应该如何工作有误解吗?如果没有办法将其与触发器关联,目前我还没有真正看到版本控制部署的意义。

1 个答案:

答案 0 :(得分:1)

  • 脚本必须bound到电子表格(可从“工具”>电子表格的脚本编辑器访问)。
  • 您需要发布和部署虚拟Web-app / api。在编辑器中,

    • 发布>部署为Web应用>选择一个版本并部署

您现在可以在Web界面中选择任何已部署的版本(“编辑”>“当前项目触发器”)以添加触发器并选择一个版本。