MS Teams Power Automate处理webhook消息HTTP POST返回attachment id问题咨询
异常原因说明
根本原因
你通过Webhook向MS Teams推送的消息属于结构化卡片类消息,Teams对这类来自应用的消息和手动发送的普通文本消息的存储逻辑完全不同,才导致你拿到的负载异常。
具体差异点
- 手动在Teams频道发送的普通文本/富文本消息,Teams会直接把内容写入
MessagePayload.Body下的Content和PlainText字段,你通过Power Automate流拿到的就是完整的消息内容,符合预期。 - 通过Incoming Webhook发送的自适应卡片、通知卡片等结构化消息,Teams会将整个卡片内容识别为独立附件存储,不会把内容解析到
MessagePayload.Body字段,该字段只会留存一个<attachment id="xxx">的占位引用标记,你当前用的触发器只会读取Body字段的内容,所以拿到的只有这个占位符,没有实际消息内容。
解决方案
- 调整Jenkins侧Webhook的发送格式,不使用卡片类结构,直接发送纯文本或普通HTML格式的消息,Teams就会直接把内容写入Body字段,流即可正常读取到预期内容。
- 如果必须保留卡片消息格式,可在现有Power Automate流中新增一步
Get message details动作,传入触发流的消息ID,主动拉取该消息关联的附件列表,解析附件中的卡片内容后再拼装到POST请求体发送即可。
内容的提问来源于stack exchange,提问作者hare krshn
相关产品推荐
相关产品推荐

