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

Google Chat API Dialog异步响应更新方法及实现示例咨询

Google Chat Slash Command 异步更新Dialog实现方案

核心实现逻辑

异步更新Dialog不需要特殊的响应格式,整体流程拆分为两个独立步骤,和当前已跑通的同步Dialog更新逻辑完全兼容:

  • 触发Slash Command后,立刻同步返回加载态Dialog,不等待搜索任务执行
  • 后端异步执行搜索任务,完成后主动调用接口更新原有Dialog内容,替换为最终搜索结果

步骤1:同步返回加载提示态Dialog

用户触发带Dialog配置的Slash Command时,不要阻塞等待搜索结果,直接在3秒响应窗口内返回标准Dialog响应即可,内容配置为加载提示文案,示例响应体如下:

{
  "action_response": {
    "type": "DIALOG",
    "dialog_action": {
      "dialog": {
        "body": {
          "sections": [
            {
              "widgets": [
                {
                  "textParagraph": {
                    "text": "*请稍候,正在执行搜索操作...*"
                  }
                }
              ]
            }
          ]
        }
      }
    }
  }
}

注意:返回该响应后,会收到Chat平台返回的消息回执,务必保存回执中的message_id字段,后续更新Dialog需要用该ID定位目标消息。


步骤2:异步更新Dialog为搜索结果

搜索任务执行完成后,调用spaces.messages.patch接口更新之前返回的加载态消息即可,不需要额外适配特殊消息格式:

  • 接口路径:PATCH https://chat.googleapis.com/v1/spaces/{space_id}/messages/{message_id}
  • 必传查询参数:updateMask=dialog,用于指定本次更新目标为消息绑定的Dialog内容
  • 请求体结构和同步返回Dialog的结构完全一致,只需要把内容替换为最终搜索结果即可,示例:
{
  "action_response": {
    "type": "DIALOG",
    "dialog_action": {
      "dialog": {
        "body": {
          "header": {
            "title": "对象搜索结果"
          },
          "sections": [
            {
              "widgets": [
                // 此处填充搜索结果对应的卡片组件
              ]
            }
          ]
        }
      }
    }
  }
}

常见注意事项

  • Slash Command的同步响应窗口只有3秒,超过窗口后无法再通过同步响应通道返回内容,所有耗时超过3秒的操作都必须走上述异步更新流程
  • 接口鉴权逻辑和普通发消息接口一致,使用有权限编辑对应空间消息的服务账号或用户OAuth凭证即可
  • 如果搜索任务执行失败,可使用完全相同的调用逻辑,将Dialog内容替换为错误提示即可
  • 不需要为异步更新配置特殊的消息字段,和已正常运行的同步Dialog消息结构100%兼容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:06:09