Bot Framework Composer添加Adaptive Card后渲染为原始JSON问题求助
Bot Framework Composer 自适应卡片渲染失败解决方案
修正步骤
- 调整自适应卡片JSON的LG定义
你当前在adaptivecardjson()模板中给JSON套了代码块标记```,会导致内容被识别为纯字符串而非可解析的JSON结构,同时删除JSON中多余的尾部逗号(示例中"style": "heading"后的多余逗号),修正后代码如下:
- 调整自适应卡片JSON的LG定义
# adaptivecardjson() - { "type": "AdaptiveCard", "body": [ { "type": "TextBlock", "size": "Medium", "weight": "Bolder", "text": "${title}", "wrap": true, "style": "heading" } ], "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "version": "1.0" }
- 完善Activity附件结构
必须明确指定自适应卡片的contentType,否则框架会将内容判定为普通文本输出,修正后的AdaptiveCard()模板如下:
- 完善Activity附件结构
# AdaptiveCard() [Activity Attachments = [ { contentType: "application/vnd.microsoft.card.adaptive" content: ${adaptivecardjson()} } ] AttachmentLayout = list ]
- 检查响应调用配置
在发送响应模块中,确保选择的响应类型为LG响应,不要使用普通文本响应,普通文本类型会直接输出表达式计算结果而不会解析为Activity结构。
- 检查响应调用配置
- 排除JSON格式异常
复制卡片payload时注意不要带入中文引号、多余转义字符,测试阶段可以先把${title}这类变量替换为固定文本,排除变量解析异常的影响。
- 排除JSON格式异常
- 适配渠道版本要求
网页聊天渠道默认兼容1.4及以下版本的自适应卡片,如果你使用了高版本特性,可以将卡片的version字段调低到1.2或1.0规避兼容问题。
- 适配渠道版本要求
内容的提问来源于stack exchange,提问作者ye_c_
相关产品推荐
相关产品推荐

