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

Google Chat API:cards_v2卡片按钮无法打开Dialog的技术求助

问题解决方法

一、修正卡片按钮的配置

你当前的按钮配置采用function+interaction的组合,这并非Google Chat触发Dialog的正确方式。正确配置需在onClick中使用dialogAction字段指定打开Dialog的操作。

修改后的卡片请求体:

{
    "cards_v2": [{
        "card": {
            "header": {
                "title": "Rolodex",
                "subtitle": "Manage your contacts!",
                "imageType": "CIRCLE",
                "imageUrl": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png"
            },
            "sections": [{
                "widgets": [{
                    "buttonList": {
                        "buttons": [{
                            "text": "Add Contact",
                            "onClick": {
                                "dialogAction": {
                                    "action": "OPEN_DIALOG"
                                }
                            }
                        }]
                    }
                }]
            }]
        }
    }]
}

调整后,点击按钮将触发REQUEST_DIALOG类型事件,而非仅收到CARD_CLICKED事件。

二、修正Dialog响应的格式

你的响应存在两处问题:一是Dialog结构缺少必要的header字段,可能导致渲染异常;二是需确保Dialog内按钮的后续操作逻辑匹配响应规范。

修改后的响应示例:

{
    "actionResponse": {
        "type": "DIALOG",
        "dialogAction": {
            "dialog": {
                "header": {
                    "title": "Add new contact"
                },
                "body": {
                    "sections": [{
                        "widgets": [{
                            "textInput": {
                                "name": "contactName",
                                "label": "Name",
                                "type": "SINGLE_LINE"
                            }
                        }, {
                            "buttonList": {
                                "buttons": [{
                                    "text": "Next",
                                    "onClick": {
                                        "action": {
                                            "function": "openSequentialDialog"
                                        }
                                    }
                                }]
                            }
                        }]
                    }]
                }
            }
        }
    }
}

额外注意事项

  • 确保机器人拥有chat.dialogs:open权限,否则无法触发Dialog;
  • 处理REQUEST_DIALOG事件时,必须在3秒内返回响应,超时会导致弹窗错误;
  • Dialog内按钮触发的后续操作,需保证对应函数逻辑能正确返回下一个Dialog或合规响应。

内容的提问来源于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.21 13:18:54