【发布时间】:2020-04-13 11:51:05
【问题描述】:
在 Bot Framework 版本 3 中,我可以调用卡片并等待用户的响应:
context.Call(new MyHeroCardOptions(), MyResumeAfter);
- 其中 MyHeroCardOptions 是 HeroCard 类型的卡片,MyResumeAfter 是等待用户响应的方法。
有人可以指导我如何在 Bot Framework V4 中做到这一点。请不要包含“ChoicePrompt”,我的目标是使用 HeroCard,因为它是一个附件。
我正在使用这个表格:
private static async Task<DialogTurnResult> TransportStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
await OptionHeroCard.GetHeroCard(stepContext.Context);
return await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions());
}
public static class OptionHeroCard
{
public static async Task GetHeroCard(ITurnContext context)
{
var heroCard = new HeroCard
{
Title = "Documentation",
Subtitle = "Microsoft Bot Framework Documentation",
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.ImBack, title: "Opción 1", value: "Opción 1"),
new CardAction(ActionTypes.ImBack, title: "Opción 2", value: "Opción 2"),
new CardAction(ActionTypes.OpenUrl, "Ir a a web", value: "https://docs.microsoft.com/bot-framework"),
},
};
var reply = context.Activity.CreateReply();
reply.AttachmentLayout = AttachmentLayoutTypes.Carousel;
reply.Attachments.Add(heroCard.ToAttachment());
await context.SendActivityAsync(reply);
}
}
我目前使用带有“瀑布”的“TextPrompt”来生成等待,但我不知道它是否合适。
- 我不知道我可以在“选择提示”中包含 HeroCard。举个例子就好了。
【问题讨论】:
-
你是说你想让用户点击英雄卡上的按钮来提示他们吗?你能提供你正在使用的实际英雄卡吗?你知道选择提示可以使用英雄卡吗?
-
你还在做这个吗?
-
嗨@KyleDelaney,1。没错,我点击了,我可以得到点击的结果。 2.代码:-
private static async Task<DialogTurnResult> TransportStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { await OptionHeroCard.GetHeroCard(stepContext.Context); return await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions()); }我目前使用的是带有“瀑布”的“TextPrompt”,但不知道是否合适。 -
请不要将代码放入 cmets。始终编辑您的问题,以便您可以提供 格式化 代码。此外,您还没有回答有关您是否知道英雄卡可用于选择提示的问题。你为什么要求我们不要包含
ChoicePrompt? -
@KyleDelaney 已编辑
标签: c# botframework