如何通过Microsoft Graph查询当前用户管理的所有用户列表
归你管理的员工列表查询解决方案
你之前的筛选请求报错,是因为Microsoft Graph 目前不支持对users集合的manager导航属性嵌套字段(如mail)直接执行过滤操作,所以$filter=manager.mail eq 'myemail@company.com'的写法属于无效筛选语法。
下面给出两种可行实现方案:
方案1:直接调用直属/全域下属专用接口(推荐)
不需要做额外筛选,直接调用对应导航属性接口即可获取结果:
- 查直属下属:调用
https://graph.microsoft.com/v1.0/me/directReports,返回所有直接向你汇报的员工 - 查所有层级归你管理的员工(包含下属的下属):调用
https://graph.microsoft.com/v1.0/me/transitiveReports - 如果需要在返回你个人信息的同时带出下属列表,可加
$expand参数:https://graph.microsoft.com/v1.0/me?$expand=directReports
方案2:通过用户列表过滤实现
如果你的场景必须从全量用户列表中筛选,需要先获取你自己的用户ID,用manager/id作为筛选条件,同时添加特殊请求头和参数:
GET https://graph.microsoft.com/v1.0/users?$filter=manager/id eq '你的用户ID'&$count=true 请求头必填参数: ConsistencyLevel: eventual
注意该方案仅支持用用户ID作为筛选值,依旧不支持用邮箱作为manager的筛选条件,属于Graph API的原生限制。
内容的提问来源于stack exchange,提问作者Nico Schuck
相关产品推荐
相关产品推荐

