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

Microsoft Graph批量请求:如何将首个API响应传入第二个API?

Microsoft Graph批量请求中传递前序请求响应到后续请求的正确方式

先修正你代码里的几个关键错误,再给出正确的实现方案:

基础错误修正

  • 第一个请求的URL拼写错误:/userse 需改为 /users
  • getPresencesByUserId 接口要求POST方法(而非你写的GET),且需使用完整相对路径 /communications/getPresencesByUserId
  • Microsoft Graph批量请求有自己的响应引用语法,和第三方平台规则不同,不要混用

正确实现代码

const batchRequestContent = {
    requests: [
      {
        id: "1",
        url: "/users?$select=id", // 仅获取所需的id字段,减少数据传输
        method: "GET",
        headers: {
          ConsistencyLevel: "eventual",
        },
      },
      {
        id: "2",
        dependsOn: ["1"], // 确保请求2在请求1执行完成后触发
        url: "/communications/getPresencesByUserId",
        method: "POST", // 该接口要求POST方法
        headers: {
          "Content-Type": "application/json",
        },
        body: {
          // 引用请求1响应中的所有用户id
          ids: ["$responses[1].value[*].id"]
        },
      },
    ],
  };
const response = await _MSGraphClient.api("$batch").post(batchRequestContent);

关键语法说明

  • $responses[1].value[*].id 是Microsoft Graph批量请求的专属引用语法:
    • $responses[1] 指向id为"1"的请求的完整响应
    • value[*].id 遍历响应中value数组的每一项,自动提取所有id字段并组成数组
  • 若需要筛选特定范围的id,可调整路径,比如取前5个用户id:$responses[1].value[0..4].id

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 17:30:08