【问题标题】:Creating and testing an add-on for Google Sheets in the new Script Editor在新的脚本编辑器中为 Google 表格创建和测试插件
【发布时间】:2021-04-30 11:21:48
【问题描述】:

我创建了几个内部插件,以使用“旧”Apps Script IDE 自动化我们公司的一些工作流程。现在我想使用去年 12 月发布的全新 Apps Script IDE 创建一个新的。一切看起来都不错,效果也很好,但是有一些我无法弄清楚。

首先:使用部署时,Google Workspace Marketplace IDE 声明“您的部署 ID 将识别您的应用支持的所有 Google Workspace 服务。”使用部署 ID 时。因此,我已将我的部署 ID 粘贴在那里。只是一个创建附加菜单并运行导致警报的函数的简单脚本:

function onInstall () {
  onOpen()
}

function onOpen () {
  var ui = SpreadsheetApp.getUi()
  var menu = ui.createAddonMenu()

  // Create menu structure
  menu
    .addItem('Create proposal', 'proposalShowPopup')

  // Add menu to UI
  menu.addToUi()
}

function proposalShowPopup() {
  Browser.msgBox('Test')
}

但是,当我部署它时,我可以在市场上看到列表,但我无法将它安装在我需要的工作表中。

另外,可能是因为我没有将这个插件声明为 Sheets 插件,所以我无法安装本文中提到的 test-deployment: Testing Google Workspace add-ons 由谷歌提供。 Apps 脚本的部署对话框中缺少 Install

我阅读了很多关于 appsscript.json 文件的信息,但除了以下适用于我的脚本的代码行之外,找不到任何关于该文件应包含内容的信息:

{
  "timeZone": "Europe/Paris",
  "dependencies": {
    "enabledAdvancedServices": [
      {
        "userSymbol": "Sheets",
        "version": "v4",
        "serviceId": "sheets"
      }
    ]
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}

关于如何使用新的 IDE(如前所述效果很好)创建仅限表格的插件有什么想法吗?

我们将不胜感激在正确方向上的任何帮助或推动。

【问题讨论】:

  • 你是如何部署插件的? @阿拉德
  • 我使用右上角的部署按钮,复制部署 ID 并在 Google Workspace add-on 复选框下的 Google Workspace Marketplace IDE > App configuration 中使用它(其中说明:您的部署 ID 将识别所有 Google您的应用支持的工作区服务。)

标签: google-apps-script google-sheets ide google-workspace add-on


【解决方案1】:

您无法在表格中安装插件的原因本质上是因为您没有在清单中声明任何关于脚本是插件的内容。

由于您希望它专门用于表格,因此清单 appscript.json 文件应类似于以下内容:

{
  "timeZone": "Europe/Paris",
  "dependencies": {
    "enabledAdvancedServices": [
      {
        "userSymbol": "Sheets",
        "version": "v4",
        "serviceId": "sheets"
      }
    ]
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "addOns": {
    "sheets": {
      "homepageTrigger": {
        "runFunction": "proposalShowPopup"
      }
    }
  }
}

注意addOns 参数以及sheets 参数已被添加。

addOns 参数具有以下结构,它表示用于定义插件内容和行为的配置。

{
  "common": {
    object (Common)
  },
  "calendar": {
    object (Calendar)
  },
  "drive": {
    object (Drive)
  },
  "gmail": {
    object (Gmail)
  },
  "docs": {
    object (Docs)
  },
  "sheets": {
    object (Sheets)
  },
  "slides": {
    object (Slides)
  }
}

至于sheets 参数,它具有以下结构——类似于addOns 中的大多数参数;但是,由于您提到它是 sheets,这将清楚地表明这些附加类型中的哪一个。

{
  "homepageTrigger": {
    object (HomepageTrigger)
  },
  "onFileScopeGrantedTrigger": {
    object (OnFileScopeGrantedTrigger)
  }
}

相应地设置清单文件后,您应该能够在转到 Test Deployments 时看到 Install 按钮弹出:

参考

【讨论】:

  • 非常感谢您的快速回复。将深入研究这一点。非常感谢您向我指出参考资料,正在寻找类似的东西,但显然不够难;-)
  • 不客气!让我知道这是否最终解决了您的问题:)
  • 这确实解决了我的问题。附加组件现在在侧栏中可见以进行测试。非常感谢!
  • @ale13 Google 表单怎么样?为什么没有forms参数?
  • @Allard 如果这对您有帮助,请点赞 Ale13 的回答。
猜你喜欢
  • 2022-01-24
  • 2014-05-18
  • 2020-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-03
相关资源
最近更新 更多