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

Teams机器人读取已读回执功能异常排查求助

Teams聊天机器人已读回执事件接收问题排查方案
  • 确认权限完整配置
    除了在机器人安装阶段添加ChatMessageReadReceipt.Read.Chat权限,必须在Azure AD应用注册的API权限页面完成管理员同意操作,仅添加权限未授予的话,Teams平台不会推送已读回执事件。

  • 验证活动接收链路
    在机器人的OnTurnAsync方法中添加日志输出,打印所有接收到的活动类型,确认messageRead类型的活动是否到达机器人端点:

    protected override async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default)
    {
        Console.WriteLine($"收到活动类型: {turnContext.Activity.Type}");
        await base.OnTurnAsync(turnContext, cancellationToken);
    }
    

    同时检查自定义中间件是否存在拦截messageRead活动的逻辑,避免事件被提前过滤。

  • 确认支持的聊天场景
    已读回执事件仅在一对一聊天和普通群聊中触发,Teams频道消息目前不支持该事件。测试时请使用符合要求的聊天场景,排除场景不兼容的问题。

  • 检查端点连通性
    确认Azure机器人服务配置的消息传递端点可以被公网正常访问,Teams平台推送事件时如果端点不可达,会直接丢弃事件。可以使用curl或Postman工具测试端点的连通性和响应状态。

  • 核对重写方法的正确性
    确保OnTeamsReadReceiptAsync方法的签名与官方定义完全一致,避免因参数或返回值不匹配导致事件无法触发:

    protected override async Task OnTeamsReadReceiptAsync(ITurnContext<IConversationUpdateActivity> turnContext, ReadReceiptInfo readReceiptInfo, CancellationToken cancellationToken)
    {
        // 自定义已读回执处理逻辑
        await turnContext.SendActivityAsync("消息已读确认");
        await base.OnTeamsReadReceiptAsync(turnContext, readReceiptInfo, cancellationToken);
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:02:02