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

Google Chat创建对话框时如何正确响应REQUEST_DIALOG事件?

Google Chat 机器人REQUEST_DIALOG事件正确响应示例

你无法唤起对话框的核心原因是响应结构不符合Google Chat的要求,收到REQUEST_DIALOG事件时不能直接返回普通消息卡片,必须返回包含dialog对象的特定响应结构。

前置校验

先确认你的机器人配置满足以下要求:

  • 斜杠命令的配置页已勾选支持对话框选项
  • 机器人权限配置允许响应用户的斜杠命令交互

Node.js 云函数运行示例

exports.googleChatBotHandler = async (req, res) => {
  const event = req.body;

  // 匹配REQUEST_DIALOG事件
  if (event.isDialogEvent && event.dialogEventType === "REQUEST_DIALOG") {
    // 构建对话框响应
    const dialogResponse = {
      actionResponse: {
        type: "DIALOG",
        dialogAction: {
          dialog: {
            body: {
              sections: [
                {
                  header: "示例对话框",
                  widgets: [
                    {
                      textInput: {
                        name: "user_input",
                        label: "请输入内容",
                        type: "SINGLE_LINE"
                      }
                    },
                    {
                      buttonList: {
                        buttons: [
                          {
                            text: "提交",
                            onClick: {
                              action: {
                                function: "submit_form",
                                parameters: []
                              }
                            }
                          }
                        ]
                      }
                    }
                  ]
                }
              ]
            }
          }
        }
      }
    };

    // 必须设置正确的响应头
    res.setHeader("Content-Type", "application/json");
    // 返回200状态码 + 响应体
    return res.status(200).send(dialogResponse);
  }

  // 其他事件的处理逻辑
  return res.status(200).send({ text: "其他事件响应" });
};

通用JSON响应结构(所有语言通用)

如果是其他开发语言,直接返回以下结构的JSON即可:

{
  "actionResponse": {
    "type": "DIALOG",
    "dialogAction": {
      "dialog": {
        "body": {
          "sections": [
            {
              "header": "测试对话框",
              "widgets": [
                {
                  "textParagraph": {
                    "text": "这是一个可正常唤起的对话框示例"
                  }
                }
              ]
            }
          ]
        }
      }
    }
  }
}

常见错误排查

  • 不要直接返回卡片数组,所有卡片内容必须嵌套在dialog.body.sections字段下
  • 不要返回普通MESSAGE类型的响应,必须指定actionResponse.type为DIALOG
  • 响应状态码不能是204、400等非200的状态码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 17:33:01