如何通过Microsoft Graph组Delta API仅获取指定组成员?
解决Microsoft Graph组Delta API获取指定组成员的问题
两种尝试失败的原因
第一种方式错误原因:
_graphServiceClient.Groups.Members.Delta()不是合法的API调用路径。Microsoft Graph的Delta API不支持全局查询所有组的成员增量,只能针对单个特定组调用成员的Delta接口。此外,在错误的调用路径下,.Select()自然也无法被SDK识别支持。第二种方式错误原因:
_graphServiceClient.Groups.Delta()是获取组对象本身的增量变化(比如组名称、描述修改)的接口,而非成员增量。这个接口本身不支持select查询参数,因此添加该参数会触发"Unrecognized query argument specified: 'select'"错误,且该接口返回的是组数据,完全不符合你获取成员的需求。
正确实现方式
要获取指定组的成员增量,需针对单个组调用成员Delta API,步骤如下:
- 确定目标组的ID(若需动态定位组,可先通过
Groups.Request().Filter(...)查询获取组ID)。 - 通过组ID定位到具体组,再调用其成员的Delta接口,同时可添加
Filter筛选成员、Select指定返回字段。
示例代码:
// 替换为目标组的ID string targetGroupId = "your-group-id-here"; var memberDeltaRequest = _graphServiceClient .Groups[targetGroupId] .Members .Delta() .Request() // 可选:筛选仅返回用户类型的成员 .Filter("odata.type eq '#microsoft.graph.user'") // 可选:指定仅返回需要的字段 .Select("displayName,mail,id"); var deltaResponse = await memberDeltaRequest.GetAsync();
补充说明
如果需要跟踪多个组的成员增量,只能逐个组调用上述接口——目前Microsoft Graph没有提供全局的组-成员关联增量查询能力,必须单独处理每个组。
内容的提问来源于stack exchange,提问作者user989988
相关产品推荐
相关产品推荐

