【问题标题】:GraphServiceClient expand functionGraphServiceClient 扩展功能
【发布时间】:2021-11-06 18:35:41
【问题描述】:

我正在使用 .NET Microsoft.Graph 库来同步用户和组。以下查询返回所有 269 个组:

var msGraphGroup =
    await graphServiceClient.Groups
        .Request()
        .Top(999)
        .GetAsync();

由于组是嵌套的,我还需要获取成员:

var msGraphGroup_ =
    await graphServiceClient.Groups
        .Request()
        .Top(999)
        .Expand("members")
        .GetAsync();

此查询返回包含成员的组,但仅返回 100 个项目。为什么不是全部 269?

我还写了以下内容:

var msGraphGroup =
    await graphServiceClient.Groups
        .Request()
        .Expand("members")
        .GetAsync();

List<Microsoft.Graph.Group> all = new List<Microsoft.Graph.Group>();

while (msGraphGroup.Count > 0)
{
    all.AddRange(msGraphGroup.CurrentPage);
    if (msGraphGroup.NextPageRequest == null)
    {
        break;
    }
    msGraphGroup = await msGraphGroup.NextPageRequest.GetAsync();
}

有没有一种方法可以在一个查询中获取包含所有成员的所有组?

【问题讨论】:

    标签: microsoft-graph-api expand


    【解决方案1】:

    根据documentation on Graph API Throttling Guide,扩展运算符非常昂贵,这就是它受到限制的原因。它也不支持选择,因此您最终会在展开中获取所有用户信息。

    到目前为止,您必须分别查询每个组的成员。有一个建议 here 使用批处理 API 来减少调用。

    注意:您的问题类似于Retrieve all Users from all Groups?Microsoft Graph cannot select on expand statement for /groups。查看它们以获得更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2011-10-10
      • 2020-02-14
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多