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

Bot Framework中Adaptive Card提交后无响应问题求助

Bot Framework Adaptive Card messageBack 动作无响应排查方案

核心配置检查

  • 确认messageBack动作的JSON结构完整且正确,必填字段不能缺失:
{
  "type": "Action.MessageBack",
  "title": "提交按钮",
  "displayText": "用户提交了选择",
  "text": "trigger_reply_command",
  "value": { "customData": "your_data" }
}

注意:text字段是机器人识别动作的关键,必须确保机器人代码中监听了该文本指令。

  • 检查JSON语法是否正确,比如引号是否配对、逗号是否遗漏,JSON大小写敏感,type必须小写为Action.MessageBack。

机器人端逻辑排查

  • 确认机器人的消息处理逻辑中,正确捕获了messageBack提交的消息:
    在Bot的OnMessageActivityAsync方法中,添加日志或直接回复,验证是否接收到动作数据:
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
    // 打印收到的消息内容,用于调试
    var activityJson = JsonConvert.SerializeObject(turnContext.Activity);
    await turnContext.SendActivityAsync(MessageFactory.Text($"收到消息:{activityJson}"), cancellationToken);

    // 监听messageBack的text指令
    if (turnContext.Activity.Text == "trigger_reply_command")
    {
        await turnContext.SendActivityAsync(MessageFactory.Text("已收到你的提交!"), cancellationToken);
    }
}
  • 排查是否有中间件拦截了消息,比如认证、过滤类中间件,是否丢弃了包含value字段的Activity。

通道兼容性验证

  • 优先使用Web Chat通道测试,部分第三方通道(如Teams旧版本)对messageBack的支持有差异,Web Chat是Bot Framework的标准测试通道,兼容性最好。
  • 确认通道是否支持messageBack动作,避免误用不支持的动作类型。

简化测试验证

  • 暂时移除Adaptive Card中的其他元素,只保留一个messageBack按钮,测试是否能触发机器人回复,排除其他元素的干扰。
  • 检查卡片是否正确附加到机器人消息中,确保发送卡片的代码没有错误,比如:
var adaptiveCard = File.ReadAllText(@"Cards/YourCard.json");
await turnContext.SendActivityAsync(MessageFactory.Attachment(new Attachment
{
    ContentType = "application/vnd.microsoft.card.adaptive",
    Content = JsonConvert.DeserializeObject(adaptiveCard)
}), cancellationToken);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 14:09:56