Microsoft Graph API — многостраничный пользовательский запрос с ошибкой $expand после обновления до последней версии

#c# #api #count #microsoft-graph-api #expand

#c# #API #считать #microsoft-graph-api #Развернуть

Вопрос:

В течение некоторого времени у меня было встроенное приложение, которое синхронизировало информацию о сотрудниках между системой управления персоналом, которую мы используем, и нашим AAD, Чтобы контролировать названия и т. Д.

В какой-то момент мои операции по исправлению ошибок для обновления пользователей начали беззвучно завершаться неудачей (это еще одна проблема..) — но это привело меня в кроличью нору обновления моих пакетов nuget, и после этого момента я теперь не могу использовать один и тот же запрос, чтобы вытащить всех наших пользователей из AAD. Мне нужна информация менеджера, поэтому я использую $expand, а также мне нужно отфильтровать, насколько мне известно, это означает, что мне нужно использовать $count

В нынешнем виде, поскольку я использую $count (нет @odata.nextlink), когда я пытаюсь вытащить вторую страницу данных, API теперь сообщает мне, что $count не является поддерживаемым вариантом запроса (или что-то в этом роде). Я пытался удалить опцию запроса и другие попытки в темноте, но безрезультатно.

Я обшарил все вокруг и не могу найти решение / обходной путь

Любая помощь была бы очень признательна — в конце концов, мне просто нужна приведенная ниже информация, чтобы я мог создавать пользовательские объекты, которые я использую для сравнения в разных системах.

 GraphServiceClient graphServiceClient = AzureAuth.SetupGraphClient();  //graphServiceClient.BaseUrl = "https://graph.microsoft.com/beta";   Listlt;Optiongt; queryOptions = new Listlt;Optiongt;();   QueryOption count = new QueryOption("$count", "true");  QueryOption manager = new QueryOption("$expand", "manager($levels=max;$select=id,displayName)");  queryOptions.Add(count);  queryOptions.Add(manager);   var users = await graphServiceClient.Users.Request(queryOptions).Header("ConsistencyLevel", "eventual").Select(x =gt; new  {  x.Id,  x.Department,  x.Mail,  x.EmployeeId,  x.GivenName,  x.Surname,  x.Manager,  x.BusinessPhones,  x.JobTitle,  x.AccountEnabled,  x.DisplayName,  x.City,  x.State  }).Filter($"endsWith(mail, '@sightsciences.com')").GetAsync();   //Return first paginated result set  userHolder.AddRange(users.CurrentPage);   //If more than a single page of data is returned, continue pulling until no further pages are present  try  {     while (users.NextPageRequest != null)  {   users = await users.NextPageRequest.GetAsync();  userHolder.AddRange(users.CurrentPage);  }  }  catch (Exception e)  {  Console.WriteLine(e);  }  

Комментарии:

1. Проверьте свои бирки. Если они имеют в виду не то, что вы думаете, вы можете не привлечь внимания нужных людей. Я поменял твою graph бирку на подходящую.

2. Спасибо! Я больше скрываюсь, чем публикую, поэтому пометка не является сильной стороной 🙂