【发布时间】:2018-03-08 10:19:00
【问题描述】:
我为我的 google sheet 脚本创建了一个网络应用程序。 我使用版本 1 部署它并且它可以工作
现在我想进行持续更改并部署我的更改, 我需要为我部署的每个更改增加版本吗?或者我可以更新当前版本吗?
另外,有没有办法以编程方式获取当前版本?
【问题讨论】:
我为我的 google sheet 脚本创建了一个网络应用程序。 我使用版本 1 部署它并且它可以工作
现在我想进行持续更改并部署我的更改, 我需要为我部署的每个更改增加版本吗?或者我可以更新当前版本吗?
另外,有没有办法以编程方式获取当前版本?
【问题讨论】:
对于您的情况,我想介绍一下,因为我有一个我也使用的解决方法。
一般来说,当更新Web Apps的脚本时,需要增加项目版本,并用新版本重新部署Web Apps。
但如果您想在不增加版本的情况下部署 Web 应用程序,作为一种变通方法,您可以通过使用库来实现。此解决方法的流程如下。
function doGet(e) {return lib.main(e)}function main(e) {return yourfunction(e)}yourfunction(e) 是您正在使用的项目中的函数。在此解决方法中,当您要修改脚本时,请修改库项目。这样,当更新库时,部署 Web 应用程序的项目会自动更新,因为在安装库时打开了“开发模式”。此更新也反映到 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
}
为了检索项目的当前版本,您可以使用 Apps Script API。 tehhowch 也回答了这个问题。在最近的更新中,用户必须能够检索和创建项目版本。通过使用它,您可以实现这一点。所需范围为https://www.googleapis.com/auth/script.projects 或https://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"
}
如果这对你没有用,我很抱歉。
【讨论】:
为apps脚本创建网络应用程序时,给出了两个链接:
exec 结尾的那个只会加载指定的发布版本的代码。dev 结尾的将加载最新保存的代码(允许在制作新版本之前测试代码)。可通过Apps Script API 对已部署版本进行编程控制,并通过clasp 对开发环境进行控制。
【讨论】:
您需要为每次更改增加版本,除非您使用应用程序的“开发”版本,因为它会始终显示最新版本。不过,这只有在您登录帐户时才可见。
【讨论】: