Google Apps脚本ScriptApp.getService().getUrl()总是返回错误的URL

2023-11-22

根据文档,此方法应返回 Web 应用程序的 URL:

“如果已部署,则返回 Web 应用程序的 URL;否则返回 null。如果您正在运行开发模式 Web 应用程序,则返回开发模式 url。”

我们有一个 Google 日历插件,其中我们使用以下方式将自定义设置页面 (html) 发送给客户:HtmlService我不知道如何ScriptApp.getService().getUrl()适用于版本化部署。

这是一个有趣的场景:

在一个新的 Google Script 项目中,我们从清单文件部署(不是 webapp,尽管清单上有“webapp”部分)

  1. 来自清单的第一个版本化部署:

    ScriptApp.getService().getUrl()正确返回https://script.google.com/a/gong.io/macros/s/AKfycbzR21YpWNakFEisFcW1zo-tArveQ5nXj_gTRYLF4OZWkMf_Gun8Q3I2WZncfLSbjKEr/exec

    版本化部署 ID:AKfycbzR21YpWNakFEisFcW1zo-tArveQ5nXj_gTRYLF4OZWkMf_Gun8Q3I2WZncfLSbjKEr

  2. 进行了一些更改,创建了新版本的部署

    ScriptApp.getService().getUrl()正确返回https://script.google.com/a/gong.io/macros/s/AKfycbxXBdBXAV7olI0NGe-uS0_4FEFZPPNXLVHml6NNNW9zYf1fLOqfLhLYsaz6FTmjduIq/exec

    版本化部署 ID:AKfycbxXBdBXAV7olI0NGe-uS0_4FEFZPPNXLVHml6NNNW9zYf1fLOqfLhLYsaz6FTmjduIq

  3. 我们已经通过以下方式部署了脚本发布->部署为网络应用程序...可能在我们的生产脚本中错误地执行了此操作

    Web 应用程序 URL 是https://script.google.com/a/gong.io/macros/s/AKfycbzv1gX4eim1CzTjnFc4sFNvLMw9mXCfOv4laDu-_9AKefk5jXg/exec

  4. 对脚本进行另一轮代码更改。这次我们从清单部署:

    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无论我们做什么。

  1. 删除所有版本化部署并创建一个新的部署
  2. 禁用的网络应用程序

enter image description here

截至目前,我所做的一切最终都会ScriptApp.getService().getUrl()返回此网址。

我怎样才能重置它并获得getUrl()返回版本化部署 ID 而不是不存在的 Web 应用程序部署 ID?

编辑:错别字


这可能是一个错误。

这个问题已在问题跟踪器中报告(我猜是您做的),现在已在内部转发。在此发布此内容以提高其可见性:

  • ScriptApp.getService().getUrl() 不适用于版本化部署

对于受此影响的任何人,请单击左上角的星星。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Apps脚本ScriptApp.getService().getUrl()总是返回错误的URL 的相关文章

随机推荐

  • C# 创建没有 的 XML 输出文件

    我是 C 开发新手 所以这里可能是一个非常简单的问题 我试图获得这样的输出
  • 自定义 pip install 命令未运行

    我正在尝试为我正在编写的 pip 库运行一些预安装命令 我的安装文件如下所示 from setuptools import setup from setuptools command install import install class
  • 如何对 __m128 类型变量中的浮点元素取反(更改符号)?

    是否有任何单个指令或函数可以反转符号 m128 内的每个浮点数 IE a r0 r1 r2 r3 gt a r0 r1 r2 r3 我知道这可以通过 mm sub ps mm set1 ps 0 0 a 但它不是可能很慢吗 mm set1
  • 在WPF网格中绘制对角线

    我想我正在尝试在 WPF 中做一些相对简单的事情 但我无法弄清楚如何做 我认为我可能正处于将其过于复杂化的边缘 如果我有一个 3 行 3 列的网格 并且我想连接两个单元格的角以创建对角边框 那么最好的方法是什么 理想情况下 如果调整控件的大
  • 在 Angular 8 中,如何从浏览器控制台访问注入的服务?

    我正在使用 Angular 8 我想从浏览器控制台 Chrome 开发工具 访问注入的服务 我可以像这样从浏览器控制台访问注入器 ng probe document querySelector app root injector 我想在开发
  • 声音文件作为 android MediaPlayer 中的变量

    在学习 android java 的过程中 我想创建一个可以从原始文件夹中播放特定声音的函数 我试图将声音文件定义为字符串 以便可以重用该函数 但是我陷入了 无法解析符号 的困境 public class MainActivity exte
  • 与共享主键的一对一关系生成 n+1 个选择;有什么解决方法吗?

    想象一下关系数据库中有 2 个表 例如人员和计费 这些实体之间定义了一个 非强制性 OneToOne 关联 并且它们共享 Person 主键 即 PERSON ID 在 Person 和 Billing 中定义 并且它是后者的外键 通过命名
  • Java Socket和ServerSocket在使用端口上的区别

    在服务器端 我们使用 Socket server serverSocket accept 创建一个套接字 创建套接字后 我们可以创建一个新线程来处理该套接字的输入 输出流 因此 如果有进一步的连接请求进来 我们可以返回监听同一端口并创建新的
  • 这超出了 GitHub 的文件大小限制 [重复]

    这个问题在这里已经有答案了 我的 github 存储库中有一些大文件 我尝试添加 提交 推送 但推送命令给出了以下错误 远程 错误 文件 app dump sql 为 106 67 MB 这超出了 GitHub 的文件大小限制 100 00
  • 创建交互式登录会话

    我正在尝试创建一个类似于微软废弃的实用程序超快速用户切换器 download 它允许快速用户切换 而无需通过欢迎屏幕 我有一个使用未记录的工作实现WinStationConnectWAPI 以及WTSEnumerateSessions 但只
  • Caffe可以直接对图像的像素进行分类吗?

    我想将图像的像素分类为 是街道 或 不是街道 我有一些训练数据KITTI数据集我看到 Caffe 有一个IMAGE DATA图层类型 标签以与输入图像大小相同的图像形式存在 除了 Caffe 之外 我解决这个问题的第一个想法是在应该分类的像
  • 在 M1 Mac 上找不到 PyTables 的 HDF5 安装

    在 M1 Mac macOS Monterey 上运行12 4 Python 3 10 3 pip install tables Collecting tables Using cached tables 3 7 0 tar gz 8 2
  • 我是否必须在 Webstart 应用程序中显式调用 System.exit() ?

    最近我将 Swing 应用程序转换为 Webstart 该过程非常简单 但我发现在关闭所有窗口后 我的应用程序的 JVM 并未终止 线程转储显示有几个非守护线程 特别是 Swing 的 EDT AWT 和几个与 websart 相关的线程
  • 如何隐藏 C++ 中的类?

    假设我有 2 个类 我希望它们可见 在给定的头文件中 还有一个类是它们的祖先 我希望其中一个类仅对前面提到的两个类可见 在C 中如何实现不可见的类功能 滥用class充当namespace会这样做 我不推荐这种模式 class hidden
  • 服务中的 postDelayed()

    我正在尝试在一段时间内自行重新启动服务 我的代码看起来像这样 在onStartCommand Looper prepare Handler handler new Handler handler postDelayed new Runnab
  • 如何在Python中读取格式化输入?

    我想从 stdin 读取输入的五个数字 如下所示 3 4 5 1 8 分成单独的变量 a b c d 和 e 我如何在Python中做到这一点 我试过这个 import string a input b a split 对于两个整数 但它不
  • 如何从 React Native 打开其他应用程序?

    如何从 ReactNative 打开其他应用程序 Gmail 相机 如何将数据从当前场景传递到其他应用程序 我找到了这个 npm 库反应本机应用程序链接可以打开其他应用程序 这是基于深层链接的 如果您有任何深层链接 那么这个库可以提供帮助
  • 摘要式身份验证的概念 - 它真的有效吗?

    据我了解 摘要式身份验证 这是一种单向操作 对密码进行哈希处理并将哈希数据传输到服务器 然后 服务器将使用存储的密码 对其进行哈希处理 并与接收到的哈希密码进行比较 应该可以免受中间人攻击 我不明白的是 如果我是中间人黑客 我不需要原始密码
  • 如何测试ActiveJob是否已入队?

    如果记录成功保存 我有一个创建操作 该操作会调用 ActiveJob def create object Object new importer params respond to do format if object save MyJo
  • Google Apps脚本ScriptApp.getService().getUrl()总是返回错误的URL

    根据文档 此方法应返回 Web 应用程序的 URL 如果已部署 则返回 Web 应用程序的 URL 否则返回 null 如果您正在运行开发模式 Web 应用程序 则返回开发模式 url 我们有一个 Google 日历插件 其中我们使用以下方