使用Python FastAPI搭建Notion Webhook失败问题排查求助
确认服务器公网可达性
你的Azure服务必须有公网可访问的域名或IP,且对应端口(Azure App Service默认用80/443,FastAPI部署时要映射正确)完全开放。Notion只能向公网地址发起请求,内网地址或端口受限的话,Notion根本连不上你的服务器,自然不会产生请求日志。强制使用HTTPS地址
Notion要求Webhook地址必须是HTTPS协议,HTTP地址会被直接拒绝。如果用Azure App Service,默认域名自带SSL;如果是自定义域名,要确保SSL证书有效且配置正确。核对Webhook地址的准确性
复制到Notion的地址要和curl测试的完全一致,不能有拼写错误、多余空格或路径偏差。比如你curl测试的是https://xxx.azurewebsites.net/notion-webhook,Notion里就不能填成https://xxx.azurewebsites.net/webhook。检查Azure的访问限制规则
如果你的Azure服务(比如App Service)设置了访问限制,或者虚拟机用了NSG安全组,要确保Notion的请求IP没有被拦截。可以临时关闭访问限制做测试,或者把Notion官方公布的IP段加入白名单。验证FastAPI路由匹配
确认你的路由是接收POST请求(Notion Webhook用POST),且路径完全对应。比如你的代码里是@router.post("/notion-webhook"),那Webhook地址的路径部分必须完全匹配,不能用GET路由或者路径写错。确认Azure应用运行状态
去Azure控制台检查你的FastAPI应用是否正常启动,有没有崩溃、重启或者依赖缺失的情况。如果服务本身没跑起来,自然接收不到任何请求。
内容的提问来源于stack exchange,提问作者NeW

