我尝试过,效果很好,但我只得到 100 个用户。
C#代码:
public async Task getAllUsers()
{
UserCollectionResponse users = await GraphClient.Users.GetAsync();
foreach (var item in users.Value)
{
Console.WriteLine("item.UserPrincipalName");
}
Console.WriteLine(users.Value.Count);
}
最后一行显示的用户数
如何才能做到?
Grpah API 中的客户端分页
我希望您需要进行分页才能从 Graph API 获取所有用户详细信息。 Graph API 支持 OData 查询参数,例如 $count、$expand、$filter、$orderby、$search、$select 和 $top。重要的一点是,您需要使用 $top 而不是 $skip 来进行分页。微软文档如下
支持客户端分页,包括客户端在单个页面中可以请求的结果数量取决于 API 和正在执行的查询。例如,/users 端点支持 $top 但不支持 $skip。
这就是您需要分页以让每个请求获得 50 个用户的方式
参考文献
Graph REST API - 在应用程序中对 Microsoft Graph 数据进行分页
您还可以参考如何使用 Graph SDK 客户端程序集完成分页这里