google-apps-script - 找到一种方法来获取使用的库版本?

标签 google-apps-script google-sheets triggers shared-libraries version

我正在通过库在多个电子表格上部署脚本。 但是您可能知道,脚本无法(目前)知道它是否正在运行最新版本。

我正在尝试通过为我的代码创建自己的版本控制来找到解决此问题的方法。 我有一个网络服务返回我的库代码的最新版本号,所以我可以比较它,但是 onOpen() 无法运行 fetchURL。我尝试打开一个保存信息的电子表格,但是 onOpen() 再次不允许您打开 Id...

onOpen() 触发器具有安全限制,阻止我查阅可用于保持版本控制的外部数据源。

注意:我不想为 onOpen() 事件使用脚本触发器。复制电子表格时不会复制脚本触发器。

所以我想不出如何通过指向外部数据源(作为 url、其他电子表格 - 任何东西!)来检查 onOpen() 触发事件上的库版本。

有什么建议吗?

最佳答案

最简单的解决方案是将 getVersion() 方法添加到您的库中,并在每次更新库时手动更新它。

已编辑:我知道您不仅想知道版本,还想知道这是否是最新版本。您可以将该信息存储在库中的 ScriptProperties 中,并具有如下功能:

function isLatestVersion() {
  return currentVersion == ScriptProperties.getProperty("latestVersion");
}

(我假设您可以将 currentVersion 硬编码到代码中并在每次重新部署 webapp 时更改它。)可以通过文件 > 项目属性菜单编辑脚本属性,并且您可以更改值而无需重新部署脚本,因此通过从该菜单更改 latestVersion,您将使旧版本在调用 isLatestVersion() 时突然开始响应“false”。

关于google-apps-script - 找到一种方法来获取使用的库版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12736537/

相关文章:

html - 如何阻止按钮从屏幕上消失?

split - 在单元格中拆分文本并创建列的功能

android - 如何在 Android 应用程序中同步 Google 电子表格并从中读取行

google-sheets - 具有多个类别的堆叠图表存储在单个列中 - Google 表格

javascript - 在 Google 脚本中获取 url 后出现菱形字符(�)

sql - 允许查看 DML 的 Oracle 触发器

javascript - 我应该如何在最后一行数据之后添加行(不带标题)(不覆盖 "Master_db"中的任何内容)

javascript - 如何在谷歌脚本中声明一个自定义类?

mySQL 触发器防止从一个表中删除另一个条件

mysql - sql中的时差计算