Google Apps脚本库和脚本分发

时间:2018-11-24 14:32:23

标签: javascript google-apps-script

我想知道是否可以将“自定义脚本”分发到工作区中的所有工作表。我在使用库或附加组件时遇到了不同的方式,但是它们都缺少我想完成的几点。

  1. 我希望它仅对我的Google帐户不公开
  2. 我需要它为Sheets帐户中的每个文件运行onOpen(e)触发器 (因此我可以向所有文件添加自定义菜单)
  3. 我还需要为每个文件设置一个时间触发器,以便我的main()函数每天晚上运行(现在,我总是在重新运行主函数时创建一个新触发器)

到目前为止,我可以使用Library Option并为所有文件创建一个新脚本,然后从该Library中调用我的Main Function。此解决方法不包括onOpen触发事件。当我使用 run-> test作为插件的功能并手动添加所有新文件(每隔一个月更新一次)时,我也就没有触发功能的可能性。

如果您有解决方案的想法,我会很高兴的。

BR NJ

1 个答案:

答案 0 :(得分:2)

  • 附加组件可以私下发布。 Private Add-ons
  • 默认情况下,库是私有的-帐户外的其他人可以将脚本用作库的唯一方法是设置文件共享以允许他们使用它。 Gaining access to a library
  • 库不能运行简单的触发器,但是附件可以运行。保留的函数名称onOpen()不能由库触发。 See Table - Resource Scoping
  • 附加组件可以运行onOpen()函数
  • 附加组件可以创建附加菜单。
  • 附加组件可以为其安装的每个文档创建一个基于时间的触发器。Quote:“每个附加组件,每个用户,每个文档只能具有一个每种类型的触发器” Add-on Restrictions < / li>

如果要执行诸如覆盖Apps脚本文件的操作,可以使用Apps Script API来完成。甚至绑定到文档(表,表单,文档)的脚本项目也可以使用Apps Script API覆盖。

StackOverflow answer - Update an Apps Script file using Apps Script

您还可以使用Apps Script API更新Apps脚本文件的清单文件,从而以编程方式将库和库版本添加到现有的Apps脚本文件中。