Большинство конечных точек в Microsoft Graph возвращают данные в страницах, включая /users
.
Чтобы получить остальные результаты, вам нужно просмотреть страницы:
private async Task<List<User>> GetUsersFromGraph()
{
if (_graphAPIConnectionDetails == null) ReadParametersFromXML();
if (graphServiceClient == null) graphServiceClient = CreateGraphServiceClient();
// Create a bucket to hold the users
List<User> users = new List<User>();
// Get the first page
IGraphServiceUsersCollectionPage usersPage = await graphClient
.Users
.Request()
.Filter("filter string")
.Select("property string")
.GetAsync();
// Add the first page of results to the user list
users.AddRange(usersPage.CurrentPage);
// Fetch each page and add those results to the list
while (usersPage.NextPageRequest != null)
{
usersPage = await usersPage.NextPageRequest.GetAsync();
users.AddRange(usersPage.CurrentPage);
}
return users;
}
Одно очень важное замечание: этот метод является наиболее эффективным способом извлечения данных из Graph.(или любой REST API на самом деле).Ваше приложение будет долго там сидеть, пока оно загружает все эти данные.Правильная методология здесь - выборка каждой страницы и обработка только этой страницы перед извлечением дополнительных данных.