【发布时间】:2020-10-07 23:38:00
【问题描述】:
我正在使用 .NET Core 3.1 C# 开发 Bot。我想在用户加入/激活机器人后立即发送带有 4 个按钮和欢迎提示的英雄卡。我在 OnMembersAddedAsync 中试过了
if (member.Id != turnContext.Activity.Recipient.Id)
{
var welcomeCard = CreateAdaptiveCardAttachment();
var response = MessageFactory.Attachment(welcomeCard);
await turnContext.SendActivityAsync( response, cancellationToken);
}
这将显示类型为 Action.Submit 的自适应卡片。但我不确定如何获取客户点击的按钮的值。我在 OnMessageActivityAsync 上试过了
if (turnContext.Activity.Value != null)
{
var mainMenu = turnContext.Activity.Value;
}
但值始终为空。自适应卡的 Json 是:
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "TextBlock",
"spacing": "medium",
"size": "default",
"weight": "bolder",
"text": "Welcome to ABC Bank !",
"wrap": true,
"maxLines": 0
},
{
"type": "TextBlock",
"size": "default",
"isSubtle": true,
"text": "Please select user type from below ....",
"wrap": true,
"maxLines": 0
}
],
"actions": [
{
"type": "Action.Submit",
"title": "Consumer"
},
{
"type": "Action.Submit",
"title": "Client"
},
{
"type": "Action.Submit",
"title": "Merchant"
}
]
}
【问题讨论】:
-
嘿,你能分享你的卡片json吗?真的有助于回答这个问题:)
-
我为自适应卡添加了 Json。
-
如果您是通过网络聊天或直线使用此功能,您只需将数据属性添加到您的自适应卡中。 stackoverflow.com/questions/62410129/…
-
正如我之前所说,我需要在最终用户输入任何内容之前将其作为欢迎发送。一旦最终用户选择了选项,我需要遵循该选项的相应瀑布对话框。上面提到的代码是在 InitiateBot.cs 中编写的,一旦客户选择选项,我需要根据客户选择的选项转到 ConsumerDialog.cs 或任何其他对话框。
-
StevieBleeds 是对的。 “动作”元素需要有一个数据属性或至少一个 ID。如果您提供您的操作 ID,这些操作将在用户与您的卡交互时发送。
标签: botframework user-input send adaptive-cards