问题标签 [google-apps-script-addon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
708 浏览

google-apps-script - 安装的 onEdit 触发器没有

我有一个函数,旨在检测一个电子表格中的更改,并将它们复制到另一个电子表格中的相同单元格位置,如果在 sheet1 中进行了更改。我首先尝试使用 sheetAPI 提供的已安装 onEdit(e) 函数来执行此操作,但一直遇到我无权从内置函数打开新电子表格的错误。我尝试设置自己的触发器,但即使我为函数分配了 OnEdit 触发器,它也不会激活。

0 投票
0 回答
265 浏览

google-apps-script - 更新 G-Suite 附加组件时移除 onFormSubmit 触发器

我想为谷歌表单创建一个独立的插件,它应该通过在谷歌驱动器中创建一个包含表单响应内容的新文本文件来处理表单提交事件。然后将这个附加组件分发给其他用户。 我的目标是用户可以在谷歌表单上安装插件,它应该可以工作,而无需从插件菜单进行额外设置。

在测试时,我发现有可用的简单和可安装触发器。(onFormSubmit是可安装触发器)每次在 G-Suite Marketplace 上更新插件时,可安装触发器都会清除。因此它删除了我的onFormSubmit触发器,因此安装的插件在 update 后停止工作

onFormSubmit触发器以这种方式添加到onInstall简单触发器中:

我想通过处理链接电子表格的onFormSubmit简单触发器来绕过这个问题。onEdit实际上,它可以检查电子表格中的新行,然后创建一个新文件。但是简单触发器没有对私人服务(如谷歌驱动器)的授权,因此不可能在简单触发器内的谷歌驱动器上创建文件

有没有办法onFormSubmit在发布新版本的附加组件后保持触发,而无需手动重新安装?好吧,这些都是合理的,但是为什么onInstall没有再次引发事件呢?或者可能有一个事件onUpdate来处理附加更新?

更新

我在这里读到:

附加触发器将在以下任何情况下停止触发:

  • 如果用户卸载了插件
  • 如果插件在文档中被禁用(如果重新启用,触发器将再次变为可操作)
  • 如果开发者取消发布插件或向插件商店提交损坏的版本

我只是在发布表单中设置了下一个版本号,单击“更新网上商店草稿”,并在新窗口中确认更新。我做的一切都正确吗?

在此处输入图像描述

即使没有修改代码,触发器也会停止触发,只需使用新版本的附加组件。并且堆栈驱动程序控制台中没有任何日志错误。这可能是一个错误吗?

0 投票
1 回答
414 浏览

google-apps-script - Google 表格插件可以包含哪些组件?

我正在为 Google 表格构建一个 Google Apps 脚本应用程序,我想将其部署为Google GSuite Marketplace中的插件。我的应用程序包含三个组件:

  1. Google 表格中的嵌入式自定义菜单和一组对话框,允许一组应用程序用户(“用户组 1”)操作电子表格数据

  2. 为另一组用户(“用户组 2”)提供移动设备访问涉及电子表格数据的不同功能集的 Web 应用程序

  3. 应用程序可用于根据需要以编程方式生成其他工作表的模板工作表(理想情况下,对用户隐藏)。

我想将所有组件部署为单个附加组件的一部分。我希望将组件 1 和 2 绑定到同一个电子表格。事实上,我希望“用户组 1”中的某个人能够单击一个按钮来获取 Web 应用程序的 URL。这需要能够通过 Apps 脚本代码在“发布”菜单上执行功能。

对附加组件文档的阅读没有提到部署附加组件的能力,其中包括 (a) 嵌入在 Google 表格中的 UI,(b) 在同一用户电子表格上运行的关联 Web 应用程序,以及 (c ) 模板(隐藏)工作表。有没有人有这方面的经验,或者关于如何进行的建议?

目前,我看到的唯一解决方案是部署两个单独的应用程序(组件 1 和 2),但是 Web 应用程序不会绑定到特定的电子表格,因此需要使用不同的 API。至于访问模板表,我认为可以通过 URL 访问外部表,但我认为加载项不可能包含模板表。

0 投票
2 回答
2421 浏览

google-apps-script - 您无权调用 showSidebar / showModalDialog

几个月前,我在 Google 表格中创建了一个电子表格,并使用了 Google Analytics 插件。直到今天它一直运行良好,现在如果我尝试创建新报告,我会看到以下错误消息:

您无权调用 showSidebar。

运行报告显示:

您无权调用 showModalDialog

计划报告显示:

您无权调用 showModalDialog

我只是一个谦虚的 AdWords 顾问,他知道的代码足以破坏事物。但是,在这种情况下,我没有改变任何东西。我所做的只是尝试运行报告。

任何帮助将不胜感激。

0 投票
2 回答
469 浏览

google-apps-script - 获取 Gmail 插件的用户时区

如何在 Gmail 插件的 appscript 中获取用户的时区。我不想要脚本的时区,而是用户的时区。我只需要显示一些历史。因此,如果我可以在客户端将 UTC 转换为用户的时区,那也没问题。

Session.getScriptTimeZone()给出脚本的时区,而不是用户的。

有没有办法获取用户的时区或根据用户的计算机时区显示时间?

0 投票
1 回答
227 浏览

google-apps-script - 更新一个版本的 Google 电子表格脚本插件需要多长时间?

我在我的 Google 电子表格插件中发现了一个重要错误。我昨天推送了新版本,24小时后仍然没有更新。我有客户对这个已经解决但等待更新的错误感到愤怒。

上次,我的更新需要几分钟来执行它,但现在它花费了太长时间。

我能做些什么?

这是商店链接:https ://chrome.google.com/webstore/detail/route-optimizer-smartmonk/ebjgghodfhffloccipkmahndnpemnjoj?authuser=0

谢谢

0 投票
1 回答
1660 浏览

google-apps-script - 在 newSelectionInput OnChangeAction 上将部分小部件动态添加到 Card

我正在尝试在 newSelectionInput OnChangeAction 上将部分小部件动态添加到 Card/CardService,该卡已添加。

我没有在谷歌上看到任何文档,如何实现这种行为。

有人可以指导我找到正确的文档或如何做到这一点。

谢谢

0 投票
3 回答
452 浏览

google-apps-script - 带有 LIMITED auth 的插件无法打开侧边栏

我有一个谷歌文档插件,它被编程为在文档打开后立即打开侧边栏。当然,这需要在文档中安装并启用插件。

我看到,一周以来,在我们的用例中非常有用的侧边栏自动打开功能不再起作用。

在 StackDriver 日志中,我看到了这个报告:

很明显,根据插件授权生命周期,插件处于 LIMITED 模式,showSidebar() 应该成功(只需查看表中的 LIMITED 列)。

--> 我怀疑最近引入了错误或新的安全限制。

为了记录,这里是一个代码片段:

0 投票
1 回答
709 浏览

google-apps-script - 如何为 google-apps-script gmail 插件实现密码文本输入小部件(输入模糊)?

看不到任何可用于 TextInput 小部件的选项来隐藏用户对密码等字段的输入。

https://developers.google.com/apps-script/reference/card-service/text-input

0 投票
1 回答
115 浏览

google-apps-script - 在域外共享 Apps 脚本插件

有没有办法与免费的 gmail 共享一个 Google Apps 脚本插件(用于 Google 表格)/在它构建的域之外?在我们公司,每个人都有域电子邮件,但有时我希望允许合作者使用我们的插件。