使用microsoft bot框架捕获聊天机器人中的用户行为

时间:2017-02-07 07:49:12

标签: botframework user-feedback

我想在bot给出的每个响应后捕获聊天机器人中的用户行为。它基本上是一个反馈,比如Facebook中的/不喜欢按钮。

在MS bot框架中可以吗?

1 个答案:

答案 0 :(得分:1)

您可以使用富卡或英雄卡实施feedback yes no按钮或like按钮。

许多消息传递通道提供附加更丰富对象的功能。 Bot框架能够将丰富的卡片作为附件呈现。支持几种类型的卡:英雄卡,缩略图卡,收据卡,登录卡,动画卡,视频卡和音频卡。选择所需的卡类型后,它将映射到附件数据结构中。查看位于CardsDialog类中的密钥代码,其中消息活动的message.Attachments属性填充了卡附件。

public async Task DisplaySelectedCard(IDialogContext context, IAwaitable<string> result)
{
    var selectedCard = await result;

    var message = context.MakeMessage();

    var attachment = GetSelectedCard(selectedCard);
    message.Attachments.Add(attachment);

    await context.PostAsync(message);

    context.Wait(this.MessageReceivedAsync);
}

英雄卡

Hero卡是一款多功能卡;它主要承载一个大图像,一个按钮,一个&#34;点击动作&#34;,以及要显示在卡上的文本内容。查看CardsDialog类中的GetHeroCard方法,了解Hero Card样本。

private static Attachment GetHeroCard()
{
    var heroCard = new HeroCard
    {
        Title = "BotFramework Hero Card",
        Subtitle = "Your bots — wherever your users are talking",
        Text = "Build and connect intelligent bots to interact with your users naturally wherever they are, from text/sms to Skype, Slack, Office 365 mail and other popular services.",
        Images = new List<CardImage> { new CardImage("https://sec.ch9.ms/ch9/7ff5/e07cfef0-aa3b-40bb-9baa-7c9ef8ff7ff5/buildreactionbotframework_960.jpg") },
        Buttons = new List<CardAction> { new CardAction(ActionTypes.OpenUrl, "Get Started", value: "https://docs.microsoft.com/bot-framework") }
    };

    return heroCard.ToAttachment();
}

我已经创建了一个样本。与您分享图片。点击“是”,它将显示一张卡片以给予评级。

enter image description here