问题标签 [google-workspace-add-ons]
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.
google-apps-script - 通过 Workspace Add-On 更改可见性设置后更新 Google 日历 UI
我有一个非常基本的Google Workspace插件,它使用CalendarApp 类在按下按钮时切换日历事件的可见性,使用setSelected()
方法
可见性切换有效,但更改仅在页面刷新时反映在 UI 中。在 UI 中手动切换复选框会立即反映更改,而无需刷新页面。
有没有办法通过我的 Workspace Add-On 复制这种即时更新行为?
一个 mwe 在下面。
google-apps-script - Google Workspace 插件是否支持拖放?
我正在创建一个谷歌日历插件,我想知道我是否可以实现拖放支持,将一个事件从我的插件拖到日历中。
Google Tasks 插件支持它(您可以将任务拖放到日历上),但不清楚它是使用公共 API 还是私有 API 来实现它。
这可能吗?
google-apps-script - Google Workspace Add On HomepageTrigger 在更改标签时在 Google 表格中触发?
我正在 Google 表格上开发 Google Workspace 插件。我在 appscript.json 中设置了清单文件,如下所示。奇怪的是,当我在 Google 表格中更改选项卡时会触发 homepageTrigger,因此我的卡片界面会有效地重新加载。我已经使用 Google 在此处提供的示例附加代码对此进行了测试:https ://developers.google.com/gsuite/add-ons/how-tos/navigation并且仍然看到问题。以下是完整的 appscript.json 清单代码:
这是 onHomepage 函数 - 只需调用此链接上引用的示例代码:https ://developers.google.com/gsuite/add-ons/how-tos/navigation
有没有其他人看到这个问题?
google-apps-script - addUpdateContent 修改内容主体
构建一个 Gmail 插件,我使用下一个代码来修改撰写视图上的正文内容:
如果 HTML var 包含<img src="">
标签,例如:
一旦它附加到撰写视图看起来像这样
如果我使用 CardService.ContentType.TEXT,我可以看到 URL 按预期附加(但在文本中)
所以看起来,在 contentType 中使用 MUTABLE_HTML 或 IMMUTABLE_HTML 会在 URL 执行后修改它。
有没有办法避免这种行为?
javascript - 谷歌工作区插件用户事件处理问题
这是一个很大的麻烦。我道歉....
我正在构建一个谷歌工作区附加组件,它允许您:
- 选择一个文件。
- 根据一堆用户输入为该文件设置一个名称。
我遇到了很多问题。
- 一个是当我选择文件时,在它引导我完成授权流程后,它经常在侧边栏中给我一个“内容不适用于此消息”。我不明白为什么会这样。我希望它只显示带有各种用户输入选项的小部件。
- 另一个是我似乎无法记录或记录任何用户输入。您可以看到我尝试在onSearch函数中将它们作为变量调用,然后将它们写入文件名。
如果您需要更多信息来帮助解决问题,请告诉我。我很抱歉代码的混乱。这是谷歌中一个相对较新的功能,我基本上只是从示例插件中改变了代码,所以有一些残留变量等。
这是 json 清单,以便您可以对其进行全面测试。
这是日志,根据第一条评论中的第一个建议。我在破译它时也遇到了一些麻烦。
google-apps-script - Gmail workspace add-on Mobile app has no back navigation
We have Gmail Workspace add-on that is used on both the Gmail Web app and Gmail Mobile app.
For some reason when running in the Gmail Mobile app there is no back navigation available. The below screen shot shows the navigation on the Web app.
But this is not available on the Mobile app?
I can't see this difference documented anywhere. Is there something we are not setting to enable this?
Also in addition to the back navigation not being available we get an error whenever we try and set the navigation via app script.
For example the following:
gives the error on Mobile app only -
failed to complete your action because the add-on will be in a bad state
Is this behaviour to be expected? Is there some other approach to controlling navigation on Gmail Mobile that we are not aware of?
google-apps-script - 从谷歌编辑器插件更新文档版本名称
在我们的 Google 编辑器插件中,我们导出现有文档以存档在我们的 ECM 系统上。当文档保存在我们的服务器上时,有没有办法在保存的 google 文档的版本上添加标签?
google-chrome - 在 chrome 浏览器中启用“阻止第三方 cookie”时,类 ui.showModalDialog 引发 LocalStorage Security 异常
目前在我们的应用程序(Google 编辑器插件和 Google Workspace 插件)中,我们使用 showModalDialog 在 iFrame 中加载不同的 URL。 链接)这是相同的代码片段:
'Top' 是一个带有 iframe 的 html 页面,它承载 URL。当用户单击加载项侧栏上托管的 HTML 页面/卡片界面页面中的按钮时,此模式对话框会正确显示。当启用“允许所有 cookie”时,这可以正常工作。
仅当用户在 chrome 浏览器 cookie 设置中设置“阻止第三方 cookie”时才会出现异常。禁用第三方 cookie 后,当用户单击侧边栏中的按钮时,会出现对话框,并且无法呈现页面并引发安全异常。我在浏览器的控制台日志中看到以下本地存储安全异常。 浏览器错误
未捕获的安全错误:无法从“Window”读取“localStorage”属性:拒绝访问此文档。
我该如何解决这个问题?有没有通过谷歌应用脚本中的存储 API 设置 cookie?
此处更新了代码和问题的详细描述
我们试图展示我们现有的文件选择器实现,以保持应用程序的一致性。iframe 和 google App 脚本之间的通信方式是通过 Post Message。要触发 iframe,这就是我在编辑器附加组件中尝试的,
- 在 HTML 页面上有一个按钮,当点击事件被触发时,它会返回到 .gs 文件,在该文件中写入以下代码
- 在其他 Google Workspace 插件中,我们通过卡片接口添加了一个按钮,该按钮上的回调函数执行以下函数
top.html 里面
appscript.json 文件
google-apps-script - 使用一个 Google 帐户开发时,Workspace 插件未显示在 Google 表格中(对于其他帐户显示非常好)
我无法使用我的一个Google 帐户在 Google 表格的右侧工具栏中显示 Google Workspace 插件。当我使用来自另一个帐户的完全相同的代码创建 Google Apps 脚本项目时,插件会按预期显示在 Google 表格中。此外,当我为 Google Docs 设置脚本时,它会同时显示两个帐户。
由于这个问题似乎与我的一个 Google 帐户有关,因此我联系了 Google 支持。他们说我的帐户的权限或类似的东西没有问题,他们也确认我的代码没有问题,但我必须在这个论坛上询问。我希望这里有人能指出我正确的方向,因为我不知道问题可能是什么。
简短背景:我一直在为 Google 表格开发一个编辑器插件,并开始发布它(我已将它连接到 GCP 项目并开始填写那里的所有表格)。在此过程中,Google 推出了 Workspace 方法来使用 Cards 等插件,因此我使用相同的帐户开始了一个新项目,将插件重新创建为 Workspace 插件。我真的看不出旧应用程序会影响新应用程序的任何原因,但这太奇怪了,我不会排除任何可能性。
我做了什么来调试这个:
- 我用两个帐户创建了一个新项目,代码完全相同(使用一个,而不是另一个)。我一直为每个帐户使用一个浏览器
- 我试图在另一个浏览器中运行失败的项目,以有问题的帐户登录,但它也失败了
附加代码很简单,只能在右侧工具栏中获取图标(我知道我应该返回卡片等,但在这里我只想看看代码是否运行并获取图标工具栏):
清单将其用作表格和文档的通用主页:
我将其安装为测试部署,然后创建一个新的 Google Sheet 或一个新的 Google Docs。
有关如何达到此目的的任何建议?