c# - 选择卡片操作后,团队将返回空字符串
问题描述
我将通过 2 个操作向用户发送一张自适应卡片,但是当我选择一个操作时,将向服务器发送一个空字符串。因此,机器人无法理解用户想要什么。
作为额外的检查,我会回显用户发送给机器人的所有内容。有一个空或空检查。
这里有 Teams 中的对话:
这是模拟器中的对话:
这是我创建活动的代码:
Activity activity = new Activity()
{
Attachments = new List<Attachment>()
{
new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = new AdaptiveCard("1.0")
{
Body = new List<AdaptiveElement>()
{
new AdaptiveTextBlock()
{
Text = $"Lorem reminder",
Size = AdaptiveTextSize.Large
},
new AdaptiveTextBlock()
{
Text = $"Hi {userName},\r\nYou've missed some lorem ipsum dolor sit amet:\r\n- **consectetur:** Ut porttitor\r\nChoose an action from below to add them."
}
},
Actions = new List<AdaptiveAction>()
{
CreateCardAction("First action"),
CreateCardAction("Second action")
}
}
}
},
From = turnContext.Activity.Recipient,
Recipient = turnContext.Activity.From,
Type = "message",
Conversation = turnContext.Activity.Conversation
};
private AdaptiveAction CreateCardAction(string text)
{
return new AdaptiveSubmitAction()
{
Title = text,
Data = text
};
}
使用类型imBack
(AdaptiveSubmitAction
如建议的操作)在这里不起作用。请参阅下面模拟器的屏幕截图。
解决方案
如果您使用 Ngrok 在本地运行此程序,则值得查看 ngrok 检查器中的有效负载,以便查看发回的内容 ( http://localhost:4040/ )。
本质上,“数据”只是一种“对象”类型,因此您可以在那里提交您想要的任何内容。例如,假设您希望它发回一个“id”值 - 简单地将其附加为“Data”属性,例如:
private AdaptiveAction CreateCardAction(string text, string id)
{
return new AdaptiveSubmitAction()
{
Title = text,
Data = id
};
}
或者,它可以是更复杂的对象,例如:
public class Foo {
public string something { get; set; }
public string id{ get; set; }
}
private AdaptiveAction CreateCardAction(string text, Foo foo)
{
return new AdaptiveSubmitAction()
{
Title = text,
Data = foo
};
}
然后当消息进来时,在您的 OnTurnAsync 上,您可以检查 Turncontext.Activity.Value 是否包含某些内容。
推荐阅读
- ms-access - 在 Access 2016 64 位上安装 32 位 OCX 文件/加载项
- zebra-printers - ZPL 设置 GX430t
- c++ - 如何从终端运行用eclipse编写的c++程序
- vba - 根据不同列中的非空白单元格自动填充列中的单元格
- android - CoordinatorLayout 内 NestedScrollView 内的 ViewPager
- javascript - 在javascript中的箭头函数中传递对象
- javascript - Webpack 在运行时构建
- r - 使用 end() 返回 xts 对象的最后日期
- mirth - 频道部署中的 Mirth Connect 错误
- android-studio - 错误处理/合并清单