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

Microsoft Webhooks订阅验证失败:通知端点未触发请求求助

日历订阅API报错排查:Subscription validation request failed

调用Microsoft Graph日历订阅API时收到错误:Subscription validation request failed. Notification endpoint must respond with 200 OK to validation request。已实现notificationUrl返回带validationToken的200响应,但服务器日志显示该端点未收到验证请求;确认notificationUrl可正常访问,应用权限齐全,且能正常调用me/calendar、创建事件、GET subscriptions等其他Graph API,唯独POST subscriptions失败。

以下是几个大概率被遗漏的排查点:

  • 强制检查HTTPS与标准端口:Graph要求通知端点必须使用HTTPS协议,且端口必须是标准的443,自定义HTTPS端口会被直接拒绝发起验证请求。哪怕你本地能访问非标准端口的服务,Graph也不会发起请求。
  • 排查防火墙/反向代理拦截:如果你的部署环境有WAF、防火墙或反向代理,要确认规则没有拦截Graph的请求——比如部分安全策略会拦截未知来源的GET请求,或者误将Graph的IP段加入黑名单,导致验证请求根本到不了你的服务器。
  • 核对订阅请求参数的正确性:
    • 确认notificationUrl拼写完全正确,无多余斜杠、空格,若服务器路径区分大小写,要保证路径大小写完全匹配;
    • changeType必须填日历订阅支持的值(如created,updated,deleted),无效值会导致Graph直接返回错误,不触发验证;
    • resource参数路径要准确,比如日历订阅需用/me/calendars/{calendarId}/events或/me/events,路径错误会跳过验证步骤。
  • 验证端点请求方式支持:Graph的订阅验证请求是GET方式,如果你的notificationUrl端点只处理POST请求,就会导致验证请求无响应,日志自然也捕获不到请求。手动构造带validationToken参数的GET请求测试端点,确认能返回200并返回对应token。
  • 检查CDN的拦截规则:如果notificationUrl前部署了CDN(如Cloudflare),要确认CDN未启用人机验证、缓存静态内容等策略,这些会直接拦截Graph的自动化验证请求。
  • 确认Graph API版本:使用v1.0稳定版API发起订阅请求,beta版可能存在特殊验证逻辑,导致验证流程异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 23:27:08