嗨,我正在做机器人,因为我有一个要求,比如当用户点击按钮时,我想在下一张卡中显示相关内容,如下所示。

有谁能告诉我如何在机器人中使用诸如自适应卡、富卡或缩略卡这样的卡来实现上述场景?
发布于 2017-11-23 09:29:37
通过使用Adaptive,您可以使用AdaptiveSubmitAction:
new AdaptiveSubmitAction()
{
Data = "show me the next card"
};这会产生一个新的传入消息,message.Text是Data的值,您可以像处理来自用户的常规消息一样处理它。
您可以使用ImBack和PostBack操作实现与其他富卡/缩略卡相同的功能:
new CardAction()
{
Type = ActionTypes.ImBack,
Value = "show me the next card"
}AdaptiveSubmitAction还具有DataJson属性,您可以使用它来代替Data (如果同时使用DataJson,则DataJson没有效果)。您可以在那里放置一个json结构,它将在传入消息的message.Value中结束,而在这种情况下,message.Text将为空。
当您需要传递更多的详细信息时,这是非常方便的,例如,DataJson = "{ \"CardName\": \"City\", \"Name\": \"New York\" }"可能意味着您想要打开一些纽约的城市卡。然后,您可以像这样检索结构:
protected override async Task MessageReceived(IDialogContext context, IAwaitable<IMessageActivity> item)
{
var message = await item;
if (string.IsNullOrEmpty(message.Text))
{
dynamic value = message.Value;
if (value == null)
{
// empty message - show help, error etc.
}
dynamic cardName = value.CardName;
// check the name, respond with the wanted card ...
}
else
{
// process as usual
await base.MessageReceived(context, item);
}
}这里是一个使用json方法的示例项目。
https://stackoverflow.com/questions/47448676
复制相似问题