мы используем следующий запрос, чтобы получить список всех членов группы
https://graph.microsoft.com/v1.0/groups/{id}/members
требование
не удалось найти никакой информации о поиске по нескольким объектам (группе и пользователю).
Используйте приведенный ниже код, чтобы получить всех пользователей в группе, а также количество групп, к которым принадлежит каждый пользователь, за один вызов:
namespace GraphGroupMembers
{
class Program
{
private static async Task Main(string[] args)
{
string tenantId = "TenantID";
string clientId = "ClientID";
string clientSecret = "ClientSecret";
var clientSecretCredential = new ClientSecretCredential(tenantId, clientId, clientSecret);
var graphClient = new GraphServiceClient(clientSecretCredential, new[] { "https://graph.microsoft.com/.default" });
var groupId = "GroupID";
var result = await graphClient.Groups[groupId].Members.GraphUser.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Expand = new string[] { "memberof/microsoft.graph.group($select=id)" };
});
foreach (var user in result.Value)
{
if (user != null)
{
var groupCount = user.MemberOf?.Count ?? 0;
Console.WriteLine($"User: {user.DisplayName}, Group Membership Count: {groupCount}");
}
}
}
}
}
топ 200, не работает.
С помощью одного запроса вы можете получить пользователей, входящих в определенную группу, и расширить группы, членом которых является пользователь.
GET /v1.0/groups/{group_id}/members/microsoft.graph.user?$expand=memberof/microsoft.graph.group($select=id)
Подсчет должен производиться на клиенте
Если вы предпочитаете Microsoft Graph .NET SDK
var result = await graphClient.Groups["{group-id}"].Members.GraphUser.GetAsync((rc) =>
{
rc.QueryParameters.Expand = new string []{ "memberof/microsoft.graph.group($select=id)" };
});
var pageIterator = PageIterator<User, UserCollectionResponse>.CreatePageIterator(graphClient, result, (user) =>
{
var groupCount = user.MemberOf.Count;
return true;
});
await pageIterator.IterateAsync();
Потрясающий!!! он работает, но возвращает только 100 пользователей и их группы, у нас около 145 пользователей
@nen Вам нужно реализовать пейджинг, проверьте обновленный ответ. По умолчанию возвращается только 100 участников.
Хотите получить результаты в C#?