You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Adaptive Cards内联$data在Teams不生效,是否需用SDK?求解决方法

问题解答

是否必须借助官方SDK访问$data内容?

不需要。Adaptive Card的$data数据绑定逻辑本质由渲染端处理,但Teams的卡片接收机制有特殊要求:直接POST带$data绑定的原始JSON到Teams接口时,Teams不会自动执行数据绑定替换,而Adaptive Card Designer是本地完成渲染,所以能正常显示实际数据。

解决curl POST到Teams不显示实际数据的问题

你遇到的核心问题是:Teams的Incoming Webhook接口(默认场景)只接收已完成数据替换的最终静态卡片JSON,不会主动解析$data和${变量}占位符。具体解决方法如下:

方法一:手动生成静态卡片JSON

直接把卡片中所有${变量名}替换成$data对应的实际值,生成纯静态JSON后再用curl POST。比如:
原始绑定片段:

{
  "type": "TextBlock",
  "text": "${header1}"
}

替换为静态内容:

{
  "type": "TextBlock",
  "text": "你的实际标题内容"
}

这种方式和你提到的“静态内容直接写入JSON正常工作”逻辑一致,适合简单场景。

方法二:预渲染数据绑定(可选SDK辅助)

如果想保留$data的结构化数据模式,需要在发送端先完成数据绑定渲染,再把最终的静态卡片JSON发给Teams:

  • 不想用官方SDK的话,可以自己实现简单的替换逻辑:遍历卡片JSON结构,把所有${xxx}格式的占位符替换成$data对象中对应键的值。
  • 官方SDK(如.NET、JavaScript版)的作用是简化这个预渲染过程,比如JavaScript的adaptivecards库可以通过renderCard方法完成绑定,再导出最终的卡片JSON。

关键机制说明

Adaptive Card Designer是本地渲染工具,会直接解析$data并替换占位符;但Teams的Webhook接口是纯JSON接收端点,只会原样渲染接收到的JSON内容——所以如果JSON里还保留${header1}这类标识,Teams就会直接显示这些字符,而非实际数据。

内容的提问来源于stack exchange,提问作者pilipeet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:55:07