每个部署的应用程序脚本Web更改版本

时间:2018-03-08 10:19:00

标签: google-apps-script

我为google工作表脚本创建了一个Web应用程序。 我使用版本1进行部署,并且可以正常工作

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

另外,有没有办法让当前版本的程序化?

3 个答案:

答案 0 :(得分:2)

根据您的情况,我想介绍,因为我有一个我也使用的解决方法。

问题1:

通常,当更新Web Apps脚本时,需要增加项目版本,并使用新版本重新部署Web Apps。

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

  1. 创建2个项目。
    • 一个是部署Web Apps的项目。
      • 它假设这是您现在正在使用的项目。
    • 另一个项目用作库。请将其创建为独立项目。
      • 请创建一个版本。
        • 在脚本编辑器上
          • 文件 - >管理版本......
          • 输入说明后,请点击"保存新版本"。
      • 请复制此脚本ID。这用于安装库。
  2. 对于部署Web Apps的项目。
    • 请将库项目安装为库。
      • 在脚本编辑器上
        • 资源 - >库...
        • 对于"添加库",请输入库项目的文件ID。
        • 启用"开发模式"。
        • 将版本设置为已保存的版本。
        • 在此示例中,请设置"标识符"到" lib"。
    • 请复制并粘贴以下功能。在这个项目中,脚本只是这个。 请在复制并粘贴后保存项目。
      • function doGet(e) {return lib.main(e)}
    • 请将Web Apps部署为新版本。
    • 完成此设置后,您无需修改​​此项目。
  3. 用于作为库的项目。
    • 请复制并粘贴以下功能。
      • function main(e) {return yourfunction(e)}
      • yourfunction(e)是您正在使用的项目中的功能。
  4. 在此变通方法中,如果要修改脚本,请修改库项目。这样,当库更新时,部署Web应用程序的项目会自动更新,因为"开发模式"安装库时打开。此更新也会反映到Web Apps。因此,可以在不增加版本的情况下更新Web应用程序的脚本。

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

    对于部署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
    
    如果要使用脚本创建新版本,可以使用以下endpont。
    POST https://script.googleapis.com/v1/projects/### scriptId ###/versions
    

    请求正文

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

    参考文献:

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

答案 1 :(得分:1)

为apps脚本创建Web应用程序时,会给出两个链接:

  1. 结尾exec的结尾只会加载指定的已发布版本的代码。
  2. 结尾dev将加载最新保存的代码(允许在制作新版本之前测试代码)。
  3. 部署版本的编程控制可通过Apps Script API获得,也可通过clasp访问开发环境。

答案 2 :(得分:0)

除非您使用" dev"否则您需要为每次更改增加版本。应用程序的版本,它将始终显示最新版本。只有在您登录帐户后才会显示此内容。