在 Google Sheet 模板的容器绑定脚本中维护启用的 API

Posted

技术标签:

【中文标题】在 Google Sheet 模板的容器绑定脚本中维护启用的 API【英文标题】:Maintaining enabled APIs in Container-bound Script for a Google Sheet Template 【发布时间】:2018-05-16 05:50:16 【问题描述】:

我有一个带有容器绑定脚本的 Google 表格,可以调用 Google Clas-s-room API。我现在已将电子表格添加为模板,供我组织中的所有教师复制表格并供自己使用。

但是,当教师从模板复制时,会在 Google Console 中创建一个新项目,但该新项目没有启用 API。他们必须进入开发者控制台并启用 Clas-s-room API 才能工作......

不!这对我的老师们来说太麻烦了!一定有更好的方法。我究竟做错了什么?我的脚本如何为电子表格的所有副本启用 API 调用?我是否需要以特定方式发布我的脚本或以特定方式设置我的项目?伙计们,这里的正确方法是什么?

在复制的电子表格中使用脚本时出现此错误。当然,在原始模板文件中也可以正常工作。

Google Clas-s-room API 之前未在项目 project-id-xxxxxxxxxxxxxxx 中使用过或已禁用。通过访问https://console.developers.google.com/apis/api/clas-s-room.googleapis.com/overview?project=project-id-xxxxxxxxxxxxxxxx 启用它,然后重试。如果您最近启用了此 API,请等待几分钟,让该操作传播到我们的系统并重试。

【问题讨论】:

【参考方案1】:

您应该将脚本发布为表格插件:https://developers.google.com/apps-script/add-ons/

这会给您带来以下好处:

    复制电子表格(已启用插件)时,无需手动启用 API,它们会保持启用状态; 当您更新插件的代码时,它会针对所有启用它的电子表格自动更新,因此您不必手动复制更改。

【讨论】:

你的回答很有道理。但这对我不起作用....我发布了插件。在电子表格上启用插件。我制作电子表格的副本。我单击一个图像按钮来激活一个脚本,它要求权限,我允许它......然后我得到“Google Clas-s-room API 之前没有在项目 project-id-xxxxxxxxxxxx 中使用过或者它被禁用了...... .blah blah" 我是否必须仅使用插件重做模板电子表格? 如果我制作另一个电子表格并在其中启用插件。效果很好!但是,如果我尝试将其用作模板,则此电子表格的副本不会启用插件。我想要插件,绑定到电子表格并复制! 我想我可能需要将其作为适当的模板提交,而不仅仅是复制它。这实际上可能是问题所在。 > 我是否必须仅使用插件重做模板电子表格?当然

以上是关于在 Google Sheet 模板的容器绑定脚本中维护启用的 API的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义菜单添加到Google Sheet Addon

直接在 Apps 脚本中按单元格颜色对 google-sheet 值进行排序

应用脚本:如何在 Google Sheet 中返回 BigQuery-Request 的 TotalRows

使用 Google App 脚本更改 Google Sheet 中部分单元格值的字体粗细

Google Sheet Script:有没有办法在不停止脚本的情况下显示消息?

如何以编程方式将 Google Sheet 脚本发布/部署为 API 可执行文件?