Teams自适应卡片显示变量名而非值的问题求助
问题排查与解决方案
核心问题原因
Teams Workflows 使用 Liquid 模板语法进行变量渲染,而非自适应卡片设计器中使用的原生 ${} 数据绑定语法。你当前模板中的 ${title} 这类写法无法被Teams工作流解析,导致直接显示变量名而非实际值;高版本卡片报错则是因为语法不兼容引发的格式错误。
修正步骤
1. 替换模板中的变量语法
将所有 ${变量名} 替换为 Liquid 语法的 {{ 变量名 }},修正后的模板如下:
{ "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "version": "1.4", "body": [ { "type": "TextBlock", "text": "{{ title }}", "wrap": true, "style": "heading" }, { "type": "FactSet", "facts": [ { "title": "Name", "value": "{{ customer[0].firstName }} {{ customer[0].lastName }}" }, { "title": "Phone number", "value": "{{ customer[0].phone }}" } ] }, { "type": "Container", "items": [ { "type": "FactSet", "facts": [ { "title": "1x", "value": "Steak" }, { "title": "2x", "value": "Side Rice" }, { "title": "1x", "value": "Soft Drink" } ], "spacing": "Small" } ], "spacing": "Small" } ] }
2. 验证Payload结构匹配
确保触发工作流时发送的JSON Payload结构与模板中的变量路径完全一致:
{ "title": "Please confirm your order:", "customer": [ { "firstName": "John", "lastName": "Smith", "phone": "(555) 555-5555" } ] }
重点确认customer是数组类型,而非单个对象,否则customer[0]会无法取值。
3. 逐步升级卡片版本
先使用1.4版本验证变量渲染正常后,再尝试升级到1.5/1.6版本。若升级后仍显示卡片无法加载:
- 检查Teams客户端版本是否支持对应版本的自适应卡片(需确保客户端为最新稳定版)
- 确保JSON结构严格遵循对应版本的schema要求
4. 确认工作流配置
检查Teams Workflow的模板设置,确保卡片模板是作为动态模板配置,而非静态JSON内容,保证工作流能触发变量替换逻辑。
内容的提问来源于stack exchange,提问作者Yki Saragi
相关产品推荐
相关产品推荐

