【发布时间】:2021-01-27 23:34:02
【问题描述】:
根据文档,此方法应返回 Web 应用的 URL:
“如果已部署,则返回 Web 应用的 URL;否则返回 null。如果您正在运行开发模式 Web 应用,则返回开发模式 url。”
我们有一个 Google 日历插件,其中我们使用 HtmlService 将自定义设置页面 (html) 交付给客户,但我不知道 ScriptApp.getService().getUrl() 如何与版本化部署一起使用。
这是一个有趣的场景:
在一个新的 Google Script 项目中,我们从清单文件(不是 webapp,尽管清单上有“webapp”部分)进行部署
-
清单中的第一个版本化部署:
ScriptApp.getService().getUrl()正确返回https://script.google.com/a/gong.io/macros/s/AKfycbzR21YpWNakFEisFcW1zo-tArveQ5nXj_gTRYLF4OZWkMf_Gun8Q3I2WZncfLSbjKEr/exec版本化部署 ID:
AKfycbzR21YpWNakFEisFcW1zo-tArveQ5nXj_gTRYLF4OZWkMf_Gun8Q3I2WZncfLSbjKEr -
进行了一些更改,创建了新的版本化部署
ScriptApp.getService().getUrl()正确返回https://script.google.com/a/gong.io/macros/s/AKfycbxXBdBXAV7olI0NGe-uS0_4FEFZPPNXLVHml6NNNW9zYf1fLOqfLhLYsaz6FTmjduIq/exec版本化部署 ID:
AKfycbxXBdBXAV7olI0NGe-uS0_4FEFZPPNXLVHml6NNNW9zYf1fLOqfLhLYsaz6FTmjduIq -
我们已经通过 Publish->Deploy as web app... 部署了脚本 可能在我们的生产脚本中错误地这样做了
-
脚本的另一轮代码更改。这次我们从清单部署:
ScriptApp.getService().getUrl()不正确返回https://script.google.com/a/gong.io/macros/s/AKfycbzv1gX4eim1CzTjnFc4sFNvLMw9mXCfOv4laDu-_9AKefk5jXg/exec版本化部署 ID:
AKfycbx29Pcs8_cpEkodrfWGklz8t_OAs87OBSEtxLMkStrya64wUV4M2ePW_tNTTWlq0_T1
请注意,这一次 - 我们得到的是 webapp 部署 ID,而不是版本化部署 ID。
从现在开始,无论我尝试过什么 - 无论我们做什么,我都会得到https://script.google.com/a/gong.io/macros/s/AKfycbzv1gX4eim1CzTjnFc4sFNvLMw9mXCfOv4laDu-_9AKefk5jXg/exec。
- 删除所有版本化部署并创建一个新的
- 禁用的网络应用程序
到目前为止,我所做的一切都以ScriptApp.getService().getUrl() 返回此 URL 结束。
如何重置它并让getUrl() 返回版本化部署 ID 而不是不存在的 webapp 部署 ID?
编辑:错别字
【问题讨论】:
-
我无法重现同样的行为。
getUrl()返回/devURL 如果我已经从 manifest 部署了一个新版本但没有通过Publish > Deploy as web app...部署 web 应用程序。您能否分享与清单文件相关的代码,以防我遗漏了什么?此外,当以Deploy as web app...发布时,会出现以下消息:A new link will be given when you click Update. The current link will continue to work。因此,似乎以这种方式部署 Web 应用程序时,会生成一个新 URL,该 URL 会覆盖从清单创建的 URL,但两者都有效。 -
考虑到这一切,您使用 URL 做什么?如果我可能会问,为什么通过
Deploy as web app...创建的不合适,而您想要与从清单部署的版本相对应的版本? -
我们为插件设置托管了几个 HTML,并且不想在我们的日历插件中手动更新 URL。
-
对我来说 getUrl() 返回了正确的版本。这是在 Google 日历上的实际设置 URL 上测试的(而不是从编辑器执行该功能 - 实际上它是 /dev URL)。那么
ScriptApp.getService().getUrl()到底返回了什么?如果我使用Publish > Deploy as web app...部署了多个版本? -
最好在问题跟踪器中创建问题。有关详细信息,请参阅tag info page。
标签: google-apps-script web-applications