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

如何在Google Workspace插件的卡片中添加toast通知提示?

解决方法

错误原因

你三次尝试报错的核心原因是混淆了Google Workspace附加组件的两个核心对象的使用场景:

  • Notification(toast通知)不属于静态卡片的组成部分,不能直接绑定到CardBuilder创建的卡片实例上
  • 通知是用户触发交互后,操作响应的返回内容,只能封装在ActionResponse或者UniversalActionResponse中返回
    此外你调用addCardAction报错的原因是:该方法接收的是CardAction实例(用于配置卡片右上角的菜单选项),不是ActionResponseBuilder实例,类型不匹配所以触发错误。

具体实现方案

第一步:清理错误代码

先删除createCatCard函数末尾你添加的两行错误逻辑:

// 删除以下两行代码
var act = CardService.newActionResponseBuilder().setNotification(CardService.newNotification().setText('bob here').setType(CardService.NotificationType.INFO));
card.addCardAction(act);

第二步:按需选择通知触发场景

场景A:用户点击按钮等交互后弹出通知

直接在交互对应的处理函数(比如你代码里的onChangeCat)的返回值中携带通知即可,示例代码:

function onChangeCat(e) {
  // 原有逻辑:提取参数、构建新的猫卡片
  const text = e.parameters.text;
  const isHomepage = e.parameters.isHomepage === 'true';
  const newCatCard = createCatCard(text, isHomepage);

  // 返回带通知的响应
  return CardService.newActionResponseBuilder()
    .setNotification(CardService.newNotification()
      .setText('bob here')
      .setType(CardService.NotificationType.INFO))
    .updateCard(newCatCard)
    .build();
}

场景B:卡片首次加载时就弹出通知

修改你附加组件的入口函数(比如首页触发的onHomepage、上下文触发的onGmailMessageOpen等),不直接返回卡片实例,而是返回带通知的通用响应:

function onHomepage(e) {
  // 原有逻辑:构建首页卡片
  const homeCard = createCatCard('欢迎使用', true);

  // 返回带通知的响应
  return CardService.newUniversalActionResponseBuilder()
    .displayAddOnCards([homeCard])
    .setNotification(CardService.newNotification()
      .setText('卡片加载成功')
      .setType(CardService.NotificationType.INFO))
    .build();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:42:02