如何处理在同一个自适应卡中单击两个按钮上的多个事件?

How to handle Multiple events on two Buttons click in same Adaptive Card?

我有一张自适应卡,里面有两个独立的按钮。按钮 1 是提交按钮,操作类型为 - Action.Submit,按钮 2 的操作类型也是 Action.Submit,这应该会触发另一个自适应卡。

问题是根据所提供的文档,只有 3 种可接受的操作类型,即 Action.Submit、Action.ShowCard 和 Action.OpenURL。

单击按钮时返回给我的响应 Activity 值仅属于输入选择集,我无法访问操作

因此我也无法根据标题过滤按钮。

自适应卡json -

https://gist.github.com/NikhilBansal21/39589cfa3fc33f44b273d551b1650

[以防 GIST 在点击时不起作用。请复制并粘贴 URL 到浏览器]

我希望我的两个按钮出现在相同的自适应卡片中以触发不同的自定义 flows/cards。

您在提交操作的数据 属性 中输入的任何内容都将与卡片中的任何输入字段一起包含在发送给机器人的有效负载中。因此,您可以使用数据 属性 来区分提交操作。

"actions": [
    {
        "type": "Action.Submit",
        "title": "1. Recreation",
        "data": {
            "button": "Recreation"
        }
    },
    {
        "type": "Action.Submit",
        "title": "2. Contractors",
        "data": {
            "button": "Contractors"
        }
    },
    {
        "type": "Action.Submit",
        "title": "3. Retail",
        "data": {
            "button": "Retail"
        }
    }
]

如果您要使用这些提交操作,activity 的 value 属性 将包含一个 button 字段,您可以检查该字段以查看哪个按钮被点击。有关详细信息,请参阅 my latest blog post 的提交操作部分。

您可以捕获提交操作未知意图并在turn.entities.button.value =“娱乐”或“承包商”或“零售”

这是我的自适应卡片提交按钮的示例 enter image description here