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

Gmail Addon的setOnClickOpenLinkAction无法打开白名单外部链接如何解决

问题修复方案

根因说明

该报错是Google Workspace插件前端渲染层的兼容性问题导致:Chrome、Safari对Content Security Policy的校验规则比Firefox更严格,通过setOnClickOpenLinkAction动态返回跳转链接时,前端生成的执行脚本未被纳入CSP白名单就会触发拦截,并非你的基础配置逻辑错误。

修复步骤

  • 第一步:确认openLink函数是全局可访问的,如果你用了模块化打包工具,不要加export关键字,或配置打包规则将该函数挂载到全局作用域。Apps Script的动作回调函数必须是全局函数,否则会触发执行失败,连带出现CSP报错。
  • 第二步:补全setOpenLink的必填参数,不要仅设置url,完整写法参考如下:
// 去掉export关键字,改为全局函数
function openLink(event): ActionResponse {
  const url = buildUrl(event.parameters);
  return CardService.newActionResponseBuilder()
    .setOpenLink(
      CardService.newOpenLink()
        .setUrl(url)
        // 可根据需求选FULL_SIZE/POPUP等打开方式
        .setOpenAs(CardService.OpenAs.POPUP)
        // 可根据需求选NOTHING/RELOAD_ADD_ON等关闭后的行为
        .setOnClose(CardService.OnClose.NOTHING)
    )
    .build();
}
  • 第三步:核对Manifest配置的openLinkUrlPrefixes前缀和动态生成的url完全匹配,注意末尾斜杠不能有差异:
    例如配置的前缀是"https://sub.fulldomain.com/",生成的url必须是该前缀开头,不能出现http、其他子域名的情况。通配符前缀"https://*.fulldomain.com/"仅对正式发布的插件生效,本地测试环境不支持通配符匹配。
  • 第四步:如果是本地测试阶段出现该问题,可以将插件发布到内部测试域安装后再验证,本地测试的Apps Script插件运行环境CSP规则和正式发布环境不一致,常出现误拦截的情况。

如果以上步骤都操作完成后仍未解决,可提交工单给Google Workspace支持团队,该问题是2024年已知的待修复前端bug,部分区域的服务节点已经推送了修复补丁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:36:02