【问题标题】:Bot framework 4 Add additional metadata to Choice Prompt ChoiceBot framework 4 向 Choice Prompt Choice 添加额外的元数据
【发布时间】:2020-07-06 18:15:10
【问题描述】:

我正在使用 BotFramework 4 开发一个机器人,我会提示用户选择一些动态的美元金额,例如:

请选择一个金额 1) 总报表余额 $29.99 2) 总未结余额 $35.00

目前我得到了整个文本值的答案,我需要解析出该值。 我的问题是有没有办法将一些基础元数据添加到选择对象中,例如,我将添加美元金额,因此当用户选择一个选项时,我将取回该选择的美元金额

【问题讨论】:

    标签: c# .net-core botframework


    【解决方案1】:

    也许在这里使用adaptive cards 是一种解决方法,试试下面的代码:

    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
    
        if (turnContext.Activity.Text.Equals("give me a choice"))
        {
            var adaptiveJsonString = "{\"$schema\":\"https://adaptivecards.io/schemas/adaptive-card.json\",\"type\":\"AdaptiveCard\",\"version\":\"1.0\",\"body\":[{\"type\":\"TextBlock\",\"text\":\"choose an amount\",\"size\":\"large\"}],\"actions\":[{\"type\":\"Action.Submit\",\"title\":\"total statement balance $29.99\",\"data\":\"29.99\"},{\"type\":\"Action.Submit\",\"title\":\"total outstanding balance $35.00\",\"data\":\"35.00\"}]}";
    
            var adaptiveCardAttachment = new Attachment()
            {
                ContentType = "application/vnd.microsoft.card.adaptive",
                Content = JsonConvert.DeserializeObject(adaptiveJsonString),
            };
            await turnContext.SendActivityAsync(MessageFactory.Attachment(adaptiveCardAttachment), cancellationToken);
        }
        else {
            await turnContext.SendActivityAsync(MessageFactory.Text("You inputed : " + turnContext.Activity.Text), cancellationToken);
        }
    
    }
    

    结果:

    如果您想了解更多关于自适应卡片的信息,this official blog 会很有帮助。

    希望对你有帮助。

    【讨论】:

    • 感谢您的好工作。但这仅适用于受支持的频道
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 2022-12-02
    • 2019-01-02
    • 2011-12-15
    • 2013-05-18
    相关资源
    最近更新 更多