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

Outlook日历Webhook接收事件变更通知时请求体为空的问题

解决Express.js Webhook无法获取Microsoft Graph通知请求体的问题
  • 核心原因:未配置JSON请求体解析中间件
    Express.js 默认不会自动解析 application/json 格式的请求体,必须显式添加解析中间件才能让 req.body 正常获取到数据。

  • 解决步骤

    1. 在你的Express应用中,在Webhook路由之前添加express.json()中间件:
      const express = require('express');
      const app = express();
      
      // 关键:先加载JSON解析中间件
      app.use(express.json());
      
      // 你的Webhook处理路由
      app.post('/your-webhook-endpoint', (req, res) => {
        // 现在req.body应该能正确获取到Microsoft Graph的通知数据
        console.log(req.body);
        // 记得返回202 Accepted响应给Graph API,避免重复通知
        res.status(202).send();
      });
      
      app.listen(3000, () => console.log('Server running on port 3000'));
      
    2. 若遇到大体积请求体(比如包含附件的事件通知),可以调整中间件的大小限制:
      app.use(express.json({ limit: '2mb' })); // 根据需求调整限制值
      
    3. 确认你的路由使用的是POST方法,Microsoft Graph的变更通知只会以POST请求发送到你的Webhook端点。
  • 额外排查点
    如果你使用的是Express 4.16.0之前的版本,需要单独安装body-parser包并使用:

    npm install body-parser
    

    然后在代码中引入:

    const bodyParser = require('body-parser');
    app.use(bodyParser.json());
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:52:07