在客户端更新Google Apps脚本库版本?

时间:2018-01-12 16:02:03

标签: google-apps-script google-sheets

我为公司管理的数十张Google表格都使用相同的Apps Scripts库,我正在尝试找到最简单的方法来更新库并将更改传播到Google表格。我了解使用开发模式,以便使用该库的Google表格具有最新代码,但需要将Apps Scripts项目的编辑权限授予Google表格用户。

另一种方法是关闭开发模式,以便用户只需要读取权限,然后更新Google表格使用的代码,我需要保存新版本的Apps Scripts库,然后手动更新每个带有新库版本的Google Sheet。

是否有使用某种Google API或其他可以通过编程方式完成的方式更新Google表格使用的库版本?

1 个答案:

答案 0 :(得分:0)

很抱歉1年后回答, 据我了解,您有一个脚本项目,该项目是一个用于多个用户项目的库,而您的问题是在每个客户端项目中部署一个精简版本。

正如Alan Wells所说,您只需要替换每个客户项目的清单即可。

您的清单是一个appsscript.json文件。 (您可以在项目中显示/隐藏清单文件)

清单文件语法:

{
  "timeZone": "XXX",
  "dependencies": {
         **** SOME dependencies you need for the client**** 
       ,
    "libraries": [{
      "userSymbol": "MAIN_SCRIPT_NAME",
      "libraryId": "MAIN_SCRIPT_ID",
      "version": "MAIN_SCRIPT_VERSION"
    }]
  },
  "exceptionLogging": "STACKDRIVER"
}

您可以使用CLASP轻松管理脚本。

在您的示例中,您可以为项目创建一个主文件夹,并为每个“客户端脚本”创建一个子文件夹。您需要将每个子文件夹同步到他的GoogleAppsScript。 初始化可能会很长而且很无聊,但是只需一点点外壳,您就可以通过单击click / script将清单推送到每个客户端脚本。

您只需要将清单文件修改到您的主文件夹中,然后运行类似以下脚本:

for x in `ls -d SubFolder*`; do (cp appsscript.json $x ; cd $x; clasp push -f >/dev/null ; cd ..; echo "Update done on "$x) ; done

现在您可以为每个客户端更新清单,库版本可用,但是依赖项也可以...(如果需要启动一些新的或终止其他的)