除了使用自适应卡之外,是否有办法在V4聊天机器人C#中启用日历选项作为输入?

时间:2019-05-27 10:55:50

标签: c# botframework bots chatbot

有没有一种方法可以在不使用自适应卡的情况下在聊天机器人中启用日期和时间输入,即日历选项,据我从下面的链接了解到,除Microsoft通道以外,所有通道都不支持自适应卡。

How to add custom choices displayed through Prompt options inside Cards & trigger actions on choice click in BOT V4 using c#?

我使用以下输入启用了自适应卡:

[BotFramework]: How to capture/extract the values submitted through Adaptive card rendered in C# Web Chat bot in a waterfall dialog?

然后我的查询:除了使用诸如英雄卡之类的自适应卡或其他任何卡(自适应卡除外)之外,我如何在BOT中启用日期时间输入?

语言:C# SDK:V4 频道:网络聊天频道 部署在:Azure

如果我有办法请您提供详细的逐步指南,因为我是BOT和编码的新手。

感谢与问候 -ChaitanyaNG

我无法从GitHub尝试以下内容,因为这与React相关,但是我的代码是用AZURE的C#和SDK V4编写的:

https://github.com/microsoft/BotFramework-WebChat/tree/master/samples/10.a.customization-card-components

预期结果:显示日历选项和时间选项以选择日期和时间,以便我可以捕获输入值并在瀑布对话框C#中继续进行处理

实际结果:无法实现,因为Web聊天频道中似乎不支持自适应卡,而Skype等Microsoft频道中则不支持

1 个答案:

答案 0 :(得分:0)

简短的答案是此功能不可用。自适应卡是任何基于UI的日期/时间选择器的最佳选择。是的,Microsoft渠道(包括WebChat)完全支持自适应卡,而其他渠道则完全不支持。

您最好的选择是使用DateTime Prompt

有许多不同的方法来实现此目的,但是它们的复杂程度各不相同,但是Virtual Assistant Calendar Skill广泛使用它。其DatePromptTimePrompt可能是一个很好的起点。

CoreBot也有一个DateResolverDialog,它可能会有所帮助,并且更容易理解。


DateTime在聊天机器人中使用非常复杂,因为“星期三凌晨4点”可能意味着星期三凌晨4点或下午4点。如果您要使用基于文本的输入,则Timex Resolution Sample应该提供其他解决方案。


由于your other issue,这在WebChat中可能不适用于您。我刚刚测试了此卡的日期和时间输入,它可以正常工作:

{
    "type": "AdaptiveCard",
    "actions": [{
        "type": "Action.Submit",
        "id": "submit",
        "title": "Submit"
    }],
    "body": [
        {
            "type": "Input.Date",
            "id": "date",
            "title": "New Input.Toggle"
        },
        {
            "type": "Container",
            "items": [
                {
                    "type": "Input.Time",
                    "id": "time",
                    "title": "New Input.Toggle"
                }
            ]
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0"
}

enter image description here

enter image description here