google-apps-script - 每次部署的应用程序脚本网络更改版本

标签 google-apps-script

我为我的 google 表格脚本创建了一个网络应用程序。 我用版本 1 部署了它并且它有效

现在我想进行持续更改并部署我的更改, 我是否需要为我部署的每个更改增加版本?或者我可以更新当前版本吗?

此外,有没有办法以编程方式获取当前版本?

最佳答案

对于你的情况,我想介绍一下,因为我有一个我也在使用的解决方法。

对于问题1:

一般情况下,当更新Web Apps的脚本时,需要增加项目版本,用新版本重新部署Web Apps。

但是如果您想在不增加版本的情况下部署 Web 应用程序,作为解决方法,您可以使用库来实现它。此解决方法的流程如下。

  1. 创建 2 个项目。
    • 一个是部署 Web Apps 的项目。
      • 假设这是您现在正在使用的项目。
    • 另一个项目用作库。请将其创建为独立项目。
      • 请创建一个版本。
        • 在脚本编辑器上
          • 文件 -> 管理版本...
          • 输入描述后,请点击“保存新版本”。
      • 请复制此脚本 ID。这用于安装库。
  2. 用于部署 Web 应用程序的项目。
    • 请将库项目安装为库。
      • 在脚本编辑器上
        • 资源 -> 图书馆...
        • 对于“添加库”,请输入库项目的文件 ID。
        • 开启“开发模式”。
        • 将版本设置为保存的版本。
        • 在此示例中,请将“Identifier”设置为“lib”。
    • 请复制并粘贴以下函数。在这个项目中,脚本只有这个。 复制粘贴后请保存工程
      • 函数 doGet(e) {返回 lib.main(e)}
    • 请将网络应用部署为新版本。
    • 此设置后,您无需修改​​此项目。
  3. 对于用作库的项目。
    • 请复制并粘贴以下函数。
      • 函数 main(e) {return yourfunction(e)}
      • yourfunction(e) 是您正在使用的项目中的函数。

在此解决方法中,当您要修改脚本时,请修改库项目。这样,当库更新时,部署Web Apps的项目会自动更新,因为在安装库时打开了“开发模式”。此更新也反射(reflect)到 Web 应用程序。所以Web Apps的脚本可以在不增加版本的情况下进行更新。

作为示例,进行上述设置后两个项目的脚本如下:

对于部署Web Apps的项目。

function doGet(e) {
  return lib.main(e);
}

对于用作库的项目。

function main(e) {
  return yourfunction(e);
}

function yourfunction(e) {

   do something: The script which is run when users accessed to Web Apps.

  return something
}

对于问题2:

为了检索项目的当前版本,您可以使用 Apps Script API。 tehhowch 也回答了这个问题。在最近的更新中,用户必须能够检索和创建项目版本。通过使用它,您可以实现这一目标。所需的范围是 https://www.googleapis.com/auth/script.projectshttps://www.googleapis.com/auth/script.projects.readonly.

获取版本列表的端点如下。
GET https://script.googleapis.com/v1/projects/### scriptId ###/versions
如果要使用脚本创建新版本,可以使用以下端点。
POST https://script.googleapis.com/v1/projects/### scriptId ###/versions

请求正文是

{
 "versionNumber": 3,
 "description": "sample description"
}

引用文献:

如果这对您没有用,我很抱歉。

关于google-apps-script - 每次部署的应用程序脚本网络更改版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49170665/

相关文章:

google-apps-script - 您如何判断文本是否适合其边界形状?

google-apps-script - 使用第二因素身份验证在 G Suite 帐户上执行 Google Apps 脚本

google-analytics - 使用 UiService 的 Google Apps 脚本 Web 应用程序可以通过 Google Analytics 进行跟踪吗?

javascript - Google Apps 脚本中的正则表达式

google-apps-script - 如何使用谷歌应用程序脚本发送电子邮件草稿

javascript - 通过 HtmlService 在 Apps 脚本中提供图像

google-apps-script - 使用 Google Apps 脚本获取其他用户云端硬盘文件的所有权

javascript - 在数组中查找字符串

json - 如何将数据从 Telegram Bot 内联键盘发送到谷歌电子表格中的特定列?

google-apps-script - 如何修复错误 'API call to bigquery.jobs.query failed with error: Encountered " "FROM" "from "“at .... 期待 : ")"'