用HeroCard按钮进行Bot瀑布对话

时间:2019-05-16 00:13:56

标签: c# botframework

是否可以在WaterfallStepContext中包含HeroCard附件,我可以调用ITurnContext,但不能从WaterfallStepContext中调用

尝试使用C#代码。活动是瀑布步内容的一部分

var getFeedback = turnContext.Activity.CreateReply();
var feedbackChoices = new HeroCard
{
    Text = "Our conversation was helpful?",
    Buttons = new List<CardAction>
    {
                new CardAction() { Title = Constants.userResponseThumbsUp, Type = ActionTypes.ImBack, Value = Constants.userResponseYes},
                new CardAction() { Title = Constants.userResponseThumbsDown, Type = ActionTypes.ImBack, Value = Constants.userResponseNo},
            },
        };

        // Add the card to our reply to user.
        getFeedback.Attachments = new List<Attachment>() { feedbackChoices.ToAttachment() };

        await turnContext.SendActivityAsync(getFeedback, cancellationToken);

1 个答案:

答案 0 :(得分:1)

是的,可以在WaterfallStepContext中包含HeroCard附件。这是下面的实现:

private static async Task<DialogTurnResult> ShowCardStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
 var getFeedback = stepContext.Context.Activity.CreateReply();
        var feedbackChoices = new HeroCard
        {
            Text = "Our conversation was helpful?",
            Buttons = new List<CardAction>
            {
                new CardAction() { Title = Constants.userResponseThumbsUp, Type = ActionTypes.ImBack, Value = Constants.userResponseYes},
                new CardAction() { Title = Constants.userResponseThumbsDown, Type = ActionTypes.ImBack, Value = Constants.userResponseNo},
            },
        };

        // Add the card to our reply to user.
        getFeedback.Attachments = new List<Attachment>() { feedbackChoices.ToAttachment() };

        await stepContext.Context.SendActivityAsync(getFeedback, cancellationToken);

}

希望这会有所帮助。