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

Microsoft Graph API callRecords订阅未接收通知求助

排查Microsoft Teams Graph API CallRecords Webhook通知未触发的方向

我来帮你梳理几个实用的排查步骤,都是针对这类Webhook订阅无通知问题的常见突破口:

  • 确认权限配置是否正确
    订阅/communications/callRecords的Webhook需要应用权限CallRecords.Read.All,而且必须由租户管理员完成同意授权——委托权限(Delegated)是无法触发Webhook通知的。你可以检查Azure AD应用注册的权限页,确认这个权限已添加并完成了管理员同意流程。

  • 验证通话是否满足通知触发条件
    Graph API的CallRecords通知只会在通话完全结束后才会触发,而且需要是符合记录范围的通话类型:比如Teams一对一/群组通话、Teams会议,部分PSTN通话也会触发,但要注意:

    • 测试通话不要过短(比如几秒就挂断),可能不会生成完整的callRecord
    • 通知不是实时推送,通常需要等待5-10分钟才会发送到你的Webhook端点
  • 核对Ngrok与订阅的URL一致性
    确保你订阅时填写的notificationUrl和Ngrok生成的公网HTTPS URL完全一致(必须是HTTPS,Graph不支持HTTP)。另外,在Ngrok的http://127.0.0.1:4040监控页,仔细查看是否有Graph发送的POST请求(通知是POST方法,验证是GET)——哪怕请求返回了错误,也会在这里留下记录。如果完全没有POST请求,说明Graph没有尝试推送通知。

  • 检查订阅的状态有效性
    调用Graph API的GET /subscriptions/07b23247-66d9-46b9-ac67-a72d5d702628接口,确认订阅的status字段为enabled,同时核对expirationDateTime是否符合续订后的时间。如果状态异常,可能需要重新创建订阅。

  • 排查Webhook端点的处理逻辑
    你使用的示例项目的Webhook端点,除了处理验证请求返回200 OK之外,是否正确处理了通知的POST请求?比如:

    • 是否在收到POST请求时立刻返回200 OK(不要处理逻辑后再返回,Graph有超时限制)
    • 是否有日志记录可以确认是否收到了POST请求?如果端点没收到,问题在Graph侧;如果收到但返回错误,会导致Graph停止重试。
  • 查看租户侧的日志与限制
    登录Azure AD门户,查看审核日志和Graph API错误日志,搜索与该订阅ID相关的记录,看是否有推送通知失败的报错信息。另外,确认租户没有配置阻止第三方Webhook的安全策略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:32:40