如何将 Google App Script 安装到 Google 可以在我自己的文档上使用的文档中?

How to install Google App Script into Google docs that can be used on my own document?

Google Apps 脚本的界面和文档不是很好,有很多东西,我无法在 google 搜索中找到任何有用的东西。我已经创建了自己的云项目,并且我自己的 google 脚本项目使用我的许可屏幕和项目将它们连接起来。我创建了有效的代码我创建了触发器打开但我不知道下一步该怎么做如何将它添加到我的文档,所以我实际上可以在文档而不是编辑器上使用我的脚本。

我需要创建脚本供我组织中打开我的文档的每个人使用。

我的代码如下所示:

function toggleBorders() {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var tables = body.getTables();
  var black = '#000000';
  var white = '#ffffff';
  tables.forEach(function(table) {
    var color = table.getBorderColor();
    table.setBorderColor(color == black ? white : black);
  })
}

function onOpen() {
  var ui = DocumentApp.getUi();
  var menu = ui.createMenu('JJ Scripts').addItem('Toogle Borders', 'toggleBorders');
  menu.addToUi();
}

我什至无法从编辑器中 运行 打开,因为出现错误:

Cannot call DocumentApp.getUi() from this context

有没有办法将 Google App Script 安装到我自己的文档中,以便我可以在编辑器之外实际使用它?

1。可能性:您的代码未绑定

  • 方法 DocumentApp.getUi() 仅适用于 bound 个脚本
  • 如果尚未完成 - 通过继续 Tools -> Script Editor、粘贴并保存代码
  • 将脚本绑定到您选择的文档
  • 运行 onOpen() 手动给脚本一次必要的权限

2。可能性:您的代码绑定到非 Google-Docs 文档

  • DocumentApp UI 只能从 Google Docs 文档中调用
  • 如果您的脚本绑定到例如Google 电子表格,DocumentApp.getUi() 会失败,您需要改用 SpreadsheetApp.getUi()(并重写 toggleBorders()

3。可能性:您想使代码通用,而不必将其绑定到文档

  • 在这种情况下,您需要创建一个 GSuite Addon 并安装它,以便代码适用于您的每个文档