Teams卡片触发Action时出现JsonReaderException问题求助
Teams卡片Action触发JsonReaderException排查方案
核心问题现象
- Teams通知卡片的所有交互Action失效,触发时抛出
JsonReaderException - 添加评论场景中,用户输入的评论未被替换到请求体的
{{comment.value}}占位符,导致请求从未送达我方API - 功能此前正常运行,无明确变更点记录
排查步骤
核对卡片输入组件与占位符的匹配性
确认评论输入框的id严格为comment,Teams的占位符替换依赖组件ID完全匹配,示例正确定义:{ "type": "Input.Text", "id": "comment", "placeholder": "输入评论内容" }同时检查输入组件与对应Action按钮是否处于同一作用域(如同一
ActionSet内),避免作用域隔离导致无法读取值。验证Action请求体模板的格式正确性
确保Action的body参数中占位符格式为标准的{{componentId.value}},无多余空格或符号,且JSON转义正确:{ "type": "Action.Http", "method": "POST", "url": "https://your-api-domain.com/add-comment", "body": "{\"comment\":\"{{comment.value}}\",\"taskId\":\"{{taskId.value}}\"}" }若请求体存在未正确转义的双引号,会导致Teams解析模板失败,直接抛出JSON格式错误。
排查Teams平台的隐性变更
检查Teams客户端版本是否有更新,部分新版本可能调整了自适应卡片的模板解析逻辑;同时确认是否触发Teams安全策略变更,比如对外部API请求的格式校验规则收紧,导致未完成占位符替换的请求被拦截。测试最小化卡片模板
创建仅包含输入框和对应Action的最简自适应卡片,排除其他组件的干扰,验证占位符替换功能是否正常:{ "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "version": "1.4", "body": [ { "type": "Input.Text", "id": "comment", "placeholder": "测试评论输入" } ], "actions": [ { "type": "Action.Http", "method": "POST", "url": "https://your-api-domain.com/test", "body": "{\"comment\":\"{{comment.value}}\"}" } ] }检查API接入层的拦截记录
排查API网关、负载均衡等接入层的日志,确认是否存在格式错误的请求被直接丢弃;同时核对网络配置(如IP白名单)是否变更,导致Teams服务器无法正常访问我方API。
内容的提问来源于stack exchange,提问作者Sebastian Rosch
相关产品推荐
相关产品推荐

