问题标签 [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 回答
697 浏览

google-apps-script - 发布谷歌插件后菜单项不出现

我的 google 表格脚本运行良好,但一旦发布,菜单项就不再存在。因此,不是在插件中显示“开始”按钮(当它作为脚本运行时工作正常),它只显示我的插件的帮助。有谁知道为什么会这样?

0 投票
0 回答
99 浏览

google-apps-script - 您如何完成 Google 插件授权生命周期?

问这个问题我感觉有点像白痴,但你如何真正从 AuthMode.NONE 升级到 AuthMode.LIMITED 到 AuthMode.FULL?

我在所需范围内有https://www.googleapis.com/auth/spreadsheets和此代码:

在 AuthMode.NONE 中测试插件时,会出现菜单项。单击它会弹出一个授权请求,但随后 AuthMode 仍然是 NONE。到达 LIMITED 的正确结构是什么?除此之外,你如何达到 FULL?

我已经阅读了授权生命周期文档一百次,但它未能完全解释这个非常简单的点。

谢谢!

0 投票
0 回答
803 浏览

google-apps-script - Google 表格插件:创建 doGet 和 doPost 端点

我正在尝试构建一个附加组件,用户在其中安装附加组件,并且在配置期间,我需要生成用户可以向其发布数据doGetdoPostURL(Web 应用程序端点)。

根据我对生成doGetdoPostAPI URL 的研究,必须将脚本部署为来自特定用户帐户的 Web 应用程序。

是否可以通过已安装的表格插件在我的插件中作为 Web 应用程序部署doGet和编码?doPost

0 投票
0 回答
73 浏览

google-apps-script - 我的代码在脚本编辑器中工作,但不是作为附加组件

我猜测了与朋友一起玩的电子表格,我想向编辑隐藏我写的代码

我在网上阅读了很多关于这方面的内容,我似乎最好的选择是将我的代码作为附加组件,所以我尝试了并完成了指南所说的所有内容,附加组件添加到我的电子表格中,但代码不工作,不是 onEdit 而不是触发器(设置为每小时工作)。在 chrome 网上商店,我认为我做的一切都很好(我再次使用了指南)作为“草稿”状态或“发布给测试人员”没有区别它不起作用! 尝试几个小时让它工作,但我做不到,我是编码新手,那个项目比我预期的要大,我必须隐藏那个代码,不胜感激任何帮助!

这是我的代码:

同样,我的代码已经安装到电子表格中,但它的行为不像脚本编辑器中的代码,我的意思是它根本不工作。

请帮忙。

0 投票
0 回答
358 浏览

google-apps-script - Google Admin Directory API:错误未授权

我有一个脚本,我希望我们域的普通用户能够运行它。我将它作为文档的附加组件推出,但是当我的用户运行脚本时,他们会收到此错误:

GoogleJsonResponseException:无权访问此资源/API。

我相信这是由于这些线。

我相信非管理员用户应该可以使用AdminDirectoryforlist()和其他只读命令(但不能写入)。但是,我能够找到的文档似乎不适合这个问题。

上述行的上下文:

0 投票
0 回答
37 浏览

google-apps-script - 要公开发布表格插件,我需要拥有公司域所有者帐户还是可以从通用 Gmail 帐户发布?

我在此处遵循了 Google 的附加发布步骤,但它说我需要请求验证并确认我拥有财产。但我不想让这个通用帐户成为我公司的正式所有者 - 我们有一个单独的 Google 管理员帐户用于我们的公司域。

在此处输入图像描述

0 投票
1 回答
263 浏览

google-apps-script - hideSheet() 正在执行,但实际上并未隐藏工作表

我正在运行我在 Google Apps 脚本中为电子表格插件制作的这个功能。它做的一切都是正确的,但每次执行它都不会隐藏工作表。有任何想法吗?

0 投票
0 回答
263 浏览

debugging - 如何调试独立的 GAS 脚本?

我正在努力解决如何调试独立 GAS 脚本的问题(在这种情况下,一个用作表格插件的脚本)。

没有调试配置。我可以使用无参数入口点创建模拟对象来与应用程序无关地调试函数,但这都发布在发布包中。此外,如果这些函数不是私有的(即不以 结尾_),它们会暴露给 Sheets 插件;但是,如果它们是私有的,则不能选择它们作为调试入口点!

官方文档不承认这个问题。这个绝妙的答案不适用,因为您SpreadsheetApp在调试独立脚本而不是绑定脚本时无法访问(并且它不能解决上述函数作为自定义函数公开给表格的问题)。

简而言之,如何设置一个环境,让我切换断点、按“调试”并根据需要逐步执行代码?

0 投票
2 回答
307 浏览

google-apps-script - “全局变量”的替代品

我使用 Google Apps 脚本制作的插件有一堆变量,大约 60 个,用于 5 个不同的函数。所以这些变量在逻辑上必须是全局的。

然而,60 个变量中有 20 个需要ScriptApp.AuthModeNONE 以外的其他变量。我不想将它们复制粘贴到所有 5 个函数中,并且希望它们保持全局性,但是在尚未授予授权的情况下它们会导致脚本失败。

在这种情况下,让函数可以访问这些变量而不是完全全局的最佳实践是什么?

正如亚当 H 所指出的,这个问题非常广泛,所以我会更具体:

  1. 将全局变量放在 if 语句中
  2. 添加返回这些变量的函数
  3. 将它们从全局移动到需要它们的每个功能

哪个是最好的?

0 投票
2 回答
1867 浏览

google-apps-script - 获取电子表格的 ID

所以,我已经尝试了一个星期,仍然错误。可以正确获取电子表格 ID。

它应该在插件尚未授权时获取活动电子表格 ID,并在授权时从属性中获取电子表格 ID。但是,在安装测试时,我总是收到一个错误,我没有权限使用openById()getDocumentProperties()

如何在任何 authMode 中将 SS 保留为全局变量而不使其为空?