繁体   English   中英

Bot 框架 4 向 Choice Prompt Choice 添加额外元数据

[英]Bot framework 4 Add additional metadata to Choice Prompt Choice

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

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

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

也许在这里使用自适应卡将是一种解决方法,请尝试以下代码:

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);
    }

}

结果 :

在此处输入图片说明

如果您想了解更多有关自适应卡片的信息, 此官方博客将有所帮助。

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM