You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets Workspace插件安装后onOpen不执行,自定义菜单未显示

问题描述

按照Google开发者文档构建Sheets编辑器及Workspace插件,操作流程为:部署→测试部署→Workspace插件路径下安装,随后打开新表格(sheet.new),预期等待数秒后,插件自定义菜单会显示在Extensions下拉菜单中。

实际结果:完成安装后打开新表格,Extensions下拉菜单中无自定义菜单,Cloud Logs也未记录该表格的onOpen事件。

插件包含两个发起外部API请求的自定义函数,以及一个HTML设置侧边栏(用于快速查看链接和管理员只读字段)。已确认插件在Enabled、Installed & Enabled authMode的测试部署模式下可正常工作,仅在扩展宿主应用(Sheets)的最后测试步骤出现问题。

已尝试的操作:

  • 修改清单文件中homepageTrigger的runFunction为负责添加菜单的addMenu函数,卸载重装后问题依旧
  • 测试了"View document add-ons"方法

匿名化后的appsscript.json清单文件如下:

{
  "addOns": {
    "common": {
      "name": "My sheets app",
      "logoUrl": "https://lh3.googleusercontent.com/__PIC_ID__",
      "layoutProperties": {
        "primaryColor": "#B8136C"
      }
    },
    "sheets": {
      "homepageTrigger": {
        "runFunction": "onOpen"
      }
    }
  },
  "timeZone": "America/New_York",
  "dependencies": {
    "enabledAdvancedServices": [
      {
        "userSymbol": "Sheets",
        "serviceId": "sheets",
        "version": "v4"
      }
    ]
  },
  "exceptionLogging": "STACKDRIVER",
  "oauthScopes": [
    "https://www.googleapis.com/auth/script.container.ui",
    "https://www.googleapis.com/auth/userinfo.email",
    "https://www.googleapis.com/auth/userinfo.profile",
    "openid",
    "https://www.googleapis.com/auth/drive.file",
    "https://www.googleapis.com/auth/spreadsheets.currentonly",
    "https://www.googleapis.com/auth/script.external_request"
  ],
  "runtimeVersion": "V8",
  "urlFetchWhitelist": [
    "https://www.mysamplesite.net/"
  ],
  "webapp": {
    "executeAs": "USER_ACCESSING",
    "access": "ANYONE"
  }
}

排查与解决建议

清单文件问题修正

  1. 移除多余的webapp配置:
    Workspace插件不需要Web App相关配置,当前清单中的webapp节点属于冗余内容,可能干扰插件与Sheets的集成逻辑。删除整个webapp字段后,重新部署测试。

  2. 确认菜单函数的插件模式语法:
    插件添加菜单必须使用专用的createAddonMenu()方法,而非普通脚本的createMenu()。无论清单中指定的是onOpen还是addMenu,函数逻辑需符合以下格式:

    function addMenu(e) {
      const ui = e.ui;
      ui.createAddonMenu()
        .addItem('打开设置侧边栏', 'showSidebar')
        .addToUi();
    }
    

    普通脚本的菜单添加方式在插件模式下无法生效,必须依赖事件参数e传递的UI实例。

部署与安装验证

  1. 确认测试部署类型:
    重新创建测试部署时,确保选择的目标类型是Workspace插件,而非Web App或其他类型,避免部署配置不匹配。

  2. 强制清除缓存并重装:
    卸载插件后,打开Sheets页面时按Ctrl+Shift+R(Windows)或Cmd+Shift+R(Mac)强制刷新,清除浏览器缓存后再重新安装插件。

  3. 检查授权状态:
    登录Google账号,进入「安全」→「第三方应用访问」页面,确认该插件已获得完整授权,未出现授权被拒绝或部分授权的情况。

日志与调试

  1. 查看脚本编辑器日志:
    除Cloud Logs外,直接在脚本编辑器中打开「查看」→「日志」,查看插件运行时的实时日志输出,这能更直接地捕获插件触发时的错误或执行情况。

  2. 添加调试日志:
    在菜单添加函数的开头加入调试日志,例如:

    function addMenu(e) {
      console.log('菜单函数已触发');
      // 后续菜单创建逻辑
    }
    

    如果日志无输出,说明触发器未被触发;如果有输出但菜单不显示,重点检查菜单创建的语法是否符合插件要求。

内容的提问来源于stack exchange,提问作者GPP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 21:41:00