如何让MS Teams机器人发送卡片回复时不触发活动源通知
解决方案:让Teams机器人的卡片回复不显示在活动源
嘿,这个需求完全能实现!我之前用Bot Builder SDK 3.x做Teams机器人的时候也碰到过类似场景,给你分享下具体的实现方法:
在Bot Builder SDK 3.15.0.0中,针对Microsoft Teams的消息,我们可以通过设置消息的ChannelData属性,告诉Teams客户端不要将这条回复推送到活动源(侧边通知列表)里,只在对话中展示卡片内容。
具体代码实现
你只需要在构建回复消息时,添加Teams专属的ChannelData配置即可,示例代码如下:
// 先创建基础回复消息 var reply = activity.CreateReply(); // 添加你的Jira工单卡片附件(这里保留你原有的卡片构建逻辑) reply.Attachments = new List<Attachment> { // 你的自适应卡片/缩略图卡片等附件内容 }; // 关键配置:设置ChannelData禁用活动源通知 reply.ChannelData = new { notification = new { alert = false } }; // 发送回复 await context.PostAsync(reply);
原理说明
Teams客户端会读取消息中的ChannelData.notification.alert属性:
- 当设置为
false时,这条消息只会出现在对话窗口内,不会显示在活动源的通知列表中 - 这个配置是Teams平台特有的扩展属性,Bot Builder SDK 3.x完全支持该配置,适配.NET Framework 4.7.1环境
这样就能完美满足你的场景需求,让卡片回复仅在对话中展示,不会出现在活动源里啦。
内容的提问来源于stack exchange,提问作者Gianluigi Conti
相关产品推荐
相关产品推荐

