【问题标题】:Waterfall model with adaptive cards in v4.0v4.0中带自适应卡片的瀑布模型
【发布时间】:2019-10-28 06:10:32
【问题描述】:

我正在尝试借助 C# 4.0 版中的自适应卡片创建一个瀑布模型。 我的场景如下:

在加载机器人时,将显示以下卡片: 1. 共享点 2.天蓝色 3.O365

一旦我点击其中任何一个,新的一组卡片将显示如下: 选择“SharePoint”后,将显示以下卡片: 1. 创建站点 2. 创建子站点。

在选择上述任何选项时,会调用一个表单,其中包含一组问题,例如: 1.什么是网站标题 2.网站所有者 等等..

界面如下图:

我尝试在https://adaptivecards.io/ 上创建结构,但找不到与此类场景相关的任何相关代码。

如果有人之前做过,请分享文档或代码sn-p。

谢谢

【问题讨论】:

    标签: c# botframework


    【解决方案1】:

    这是一张带有Input.ChoiceSet的基本卡片:

    {
        "type": "AdaptiveCard",
        "body": [
            {
                "type": "Container",
                "items": [
                    {
                        "type": "Input.ChoiceSet",
                        "id": "first",
                        "placeholder": "Placeholder text",
                        "choices": [
                            {
                                "title": "SharePoint",
                                "value": "SharePoint"
                            },
                            {
                                "title": "Azure",
                                "value": "Azure"
                            },
                            {
                                "title": "O365",
                                "value": "O365"
                            }
                        ],
                        "style": "expanded"
                    }
                ]
            }
        ],
        "actions": [
          {
              "type": "Action.Submit",
              "title": "Submit"
          }  
        ],
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "version": "1.0"
    }
    

    然后,在您的机器人中,按照以下答案处理用户输入:

    基本上,你会想要:

    1. 发送卡片

    2. 在发送卡片后立即发送空白文本提示来捕获卡片的输入(如第一个链接中所述)

    3. 在下一步中使用 if 或 switch 语句来根据用户的输入确定接下来要显示的卡片。您可以选择使用第二个链接更动态地创建卡片


    AdaptiveCards Designer 很不错,但是它缺少设置actions 属性的能力。您可以手动添加(就像我在上面所做的那样):

    "actions": [
          {
              "type": "Action.Submit",
              "title": "Submit"
          }  
        ],
    

    使用图片

    如果您想使用图片而不是 ChoiceSet,您可以执行以下操作:

    {
        "type": "AdaptiveCard",
        "body": [
            {
                "type": "Container",
                "items": [
                    {
                        "type": "Image",
                        "id": "choice1",
                        "selectAction": {
                            "type": "Action.Submit",
                            "title": "choice1",
                            "data": {
                                "choice": 1
                            }
                        },
                        "url": "https://acuvate.com/wp-content/uploads/2017/02/Microsoft-Botframework.fw_-thegem-person.png",
                        "altText": ""
                    },
                    {
                        "type": "Image",
                        "id": "choice2",
                        "selectAction": {
                            "type": "Action.Submit",
                            "title": "choice2",
                            "data": {
                                "choice": 2
                            }
                        },
                        "url": "https://acuvate.com/wp-content/uploads/2017/02/Microsoft-Botframework.fw_-thegem-person.png",
                        "altText": ""
                    },
                    {
                        "type": "Image",
                        "id": "choice3",
                        "selectAction": {
                            "type": "Action.Submit",
                            "title": "choice3",
                            "data": {
                                "choice": 3
                            }
                        },
                        "url": "https://acuvate.com/wp-content/uploads/2017/02/Microsoft-Botframework.fw_-thegem-person.png",
                        "altText": ""
                    }
                ]
            }
        ],
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "version": "1.0"
    }
    

    重要的部分是确保Action.Submit:

    1. 在图片上
    2. data,您将使用它来捕获用户选择的选项

    【讨论】:

    • 感谢您的回复,我已编辑问题并上传了图片。是否有可能获得那种 UI 而不是选择集,然后点击这些获得类似于上述卡片的新卡片。
    • @user64870 你当然可以!我更新了答案;它在最后。注意:我只是使用相同的图像进行快速模型。你绝对可以使用不同的,你可以将data设置为你想要的任何东西。
    • 然后根据数据选择我可以用不同的卡片调用一个新的json..对吗?
    猜你喜欢
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 2017-10-27
    相关资源
    最近更新 更多