首页 > 解决方案 > Microsoft Graph API - 从 id 列表中获取目录对象 - 错误请求

问题描述

我需要使用 Microsoft Graph API 获取用户所属的组列表。

为此,我正在使用端点POST /users/<userId>/getMemberGroupsdoc)。这很好用,但问题是响应只是组对象 ID 的列表。我也需要获取组属性。我可以遍历列表并查询 API,GET /groups/<groupId>但是当用户有多个组时,这需要很长时间。

然后我找到了POST /directoryObjects/getByIddoc),它把这个列表变成了我需要的东西。我完全按照文档页面进行操作,但出现以下错误:

Request_BadRequest - 请求目标不允许指定的 HTTP 方法。(HTTP 状态 405)

我究竟做错了什么?方法有getById问题吗?如果是,是否有任何替代方法可以将组对象 ID 列表转换为组或获取用户组的完整列表?

标签: azure-active-directorymicrosoft-graph-api

解决方案


您提到的 APIGet directory objects from a list of ids应该可以工作,我在MS Graph Explorer中对其进行了测试,它工作正常。

确保你使用POST方法,我可以用另一种方法重现你的问题。

在此处输入图像描述

您可以参考以下信息,然后再试一次。

请求网址:

POST https://graph.microsoft.com/beta/directoryObjects/getByIds

请求正文:

{
  "ids": [
        "xxxxxxxx-9f1b-4f28-a408-xxxxxxxxxxxx",
        "xxxxxxxx-a614-4335-81eb-xxxxxxxxxxxx",
        "xxxxxxxx-e500-49d6-a705-xxxxxxxxxxxx",
        "xxxxxxxx-5be3-41eb-864d-xxxxxxxxxxxx",
        "xxxxxxxx-961d-4db9-87cf-xxxxxxxxxxxx",
        "xxxxxxxx-93bf-4950-8d96-xxxxxxxxxxxx"
  ],
  "types": [
    "group"
  ]
}

结果:

在此处输入图像描述


推荐阅读