一个人可以遍历绑定的脚本并通过脚本来编辑其清单文件吗?

时间:2019-06-07 13:27:34

标签: google-apps-script

我正在构建一个拥有许多用户的应用程序,每个用户将拥有许多Google文档。每个文档都有一个自定义菜单,该自定义菜单将调用一个库脚本。我可能需要或想要不时更改该库脚本中的编码。

由于必须将对库脚本的更改“保存”为新版本,以便将更改的版本传递到客户端脚本(在我的情况下,该脚本绑定到Google Docs),因此我需要一种用户可以在其文档的绑定脚本appsscript.json中“批量”更新版本号 文件。

我已经研究了这个问题,并且似乎有两种通用的选择:将客户端脚本的库模式设置为“ Developmental”或使用附加组件。

前者的问题是,除非所有用户都被授予了对库脚本的编辑模式访问权限,否则它将无法工作(这似乎是一个坏主意,因为用户甚至可能不认识我)。 >

后者的问题本质上是复杂性和成本。如果我将附加组件设为私有,则该附加组件仅适用于同一域中的用户,这意味着我必须创建一个G-Suite域(并(至少在撰写本文时)每年为每位用户支付$ 72,这是非入门级的这个项目)。

如果我将插件公开,那么除了麻烦之外,我还必须注册Google Cloud Platform,其成本要求人们在选择和替代品的真实迷宫中导航,以便在这一点上,我真的不知道每项服务或每位用户的成本是多少。

下面,我介绍一些“模拟”代码,这些代码至少应表明我要去的方向。

function upDate() {
  var version = 23
  var scripts = "https://script.google.com/u/0/home"
          //while (scripts.hasNext()) {
            //var script = files.next();
  //Note: All of the script's have the same name as they commence life bound to a template, which template is duplicated to create the rest of the user's docs
  if( scriptName = ScriptName){
            //set.dependencies.enabledAdvancedServices[].version
}
}

我什至不知道是否可以像浏览Google云端硬盘中的文件那样单步执行绑定脚本,所以这是第一个问题。然后,第二个问题是,假设您可以一步一步地执行脚本,是否可以更改清单值(在这种情况下为版本号)。

1 个答案:

答案 0 :(得分:0)

一个人无法浏览容器绑定的脚本,因为它们(不再)位于一个人的Google云端硬盘中。此外,尽管Google提供了有关在清单的版本部分中使用“稳定”值的文档,但该文档似乎是错误的。最后,不能以编程方式编辑独立脚本。

但是,有一种解决方法。我最终要做的是编写一个脚本,逐步遍历所有涉及的Google文档,并将其复制到空白模板(即实际上是全部复制)。该空白模板中安装了绑定脚本,并带有库的新版本号。然后,删除原始文档(通过相同的脚本)和voilà,完成对所有目标文档的批量更新。 (这样做的一个缺点是:如果Google Doc的修订历史记录对您很重要,请告知我们(除非您保留原始版本)。