Google Apps脚本库和脚本分发

我想知道是否有可能将我的自定义脚本分发到我工作区中的所有工作表。我找到了不同的库或附加组件的方法,但它们都缺少我想要实现的一些要点。

  1. 我希望它只对我的Google帐户是私有的
  2. 我需要它为我的工作表帐户上的每个文件运行onOpen(E)触发器 (这样我就可以向我的所有文件添加自定义菜单)
  3. 我还需要为每个文件设置一个时间触发器,以便我的main()函数每晚运行(现在我总是在重新运行我的main函数时创建一个新的触发器)
到目前为止,我可以使用库选项,为我的所有文件创建一个新脚本,并从该库调用我的Main函数。此解决方法不包括onOpen触发器事件。当我使用运行->测试作为插件并手动添加所有新文件(每个新月都会出现)的功能时,我也不可能使用触发器函数。

如果您有解决方案,我将非常乐意。

BR NJ


解决方案

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

如果您想要执行覆盖Apps脚本文件之类的操作,可以使用Apps脚本API来完成。甚至绑定到文档(工作表、表单、文档)的脚本项目也可以用应用程序脚本API覆盖。

StackOverflow answer - Update an Apps Script file using Apps Script

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

相关文章