#c# #azure-active-directory #microsoft-graph-api
#c# #azure-active-directory #microsoft-graph-api
Вопрос:
В Microsoft teams есть вкладка под названием «Организация», которая показывает что-то вроде этого:
Есть ли какой-либо способ получить эти данные на C # с помощью Graph API?
Прямо сейчас у меня есть
var users = await graphClient.Users.Request().GetAsync();
который возвращает массив всех пользователей, и у каждого пользователя есть его имя и должность. Этого недостаточно для создания организационной диаграммы, поскольку она не показывает, как связаны разные пользователи. Какой вызов Graph API мне нужно выполнить, чтобы получить данные для создания организационной диаграммы?
Ответ №1:
Если вы используете Microsoft Graph SDK для C #, вы можете использовать приведенный ниже код для подключения пользователей к менеджеру:
var usersWithMgr = await graphServiceClient.Users.Request().Expand("manager").GetAsync();
Комментарии:
1. Спасибо, мой последний вызов api выглядит как var users = await graphClient . Пользователи.Запрос ().Развернуть («менеджер») .Выберите(u => создать { u.DisplayName, u.JobTitle, u.AccountEnabled}). GetAsync(); , u.AccountEnabled важно!
2. Есть ли способ использовать
GraphServiceClient
с пользовательским доменом или способ получить идентификатор клиента и сведения о подключении? Или они могут быть предоставлены только администратором?
Ответ №2:
Я узнал, что вы можете вызвать graph для пользователей, чтобы получить всех пользователей в домене, затем для каждого пользователя выполните вызов, как указано здесь: https://docs.microsoft.com/en-us/graph/api/user-list-manager?view=graph-rest-1.0amp;tabs=csharp
Это приведет к получению менеджера, которым можно управлять в иерархическом представлении.
Обновить:
var users = await graphClient.Users.Request().Expand("manager")
.Select(u => new { u.DisplayName, u.JobTitle, u.AccountEnabled}).GetAsync();