Клиентская библиотека Microsoft Graph .NET: добавление участников и группы в группу - PullRequest
0 голосов
/ 23 декабря 2018

Я только начинаю с Microsoft Graph API и .net.

Как добавить участников и команду в группу, используя последнюю версию Microsoft.Graph 1.13.0-предварительный пакет nuget (клиентская библиотека Microsoft Graph .NET)?

Можно ли это сделать в одном запросе?

Я не смог настроить участников,Владельцы или Свойства команды в новой групповой выписке.

Также я не могу добавить команду во вновь созданную группу (см. Последнее утверждение).Вызов CreateAsync не возвращает.

Что я делаю не так?

        Group group = new Group
        {
            DisplayName = "Test Group",
            Description = "description",
            MailNickname = "testgroup",
            Visibility = "Private",
            MailEnabled = true,
            SecurityEnabled = false,
            GroupTypes = new List<string> { "Unified" },
            Members = {} // not working,
            Owners = {} // not working,
            Team = {} // not working
        };

       var createdGroup = await graphClient.Groups.Request().AddAsync(group);
        foreach (var item in groupMembers)
        {
            await raphClient.Groups[createdGroup.Id]
                            .Members.References.Request().AddAsync(item);
        }
        // not working
        var createdTeam = await graphClient.Groups[createdGroup.Id]
                                           .Team.Request().CreateAsync(new Team());

        return createdGroup;

1 Ответ

0 голосов
/ 24 июня 2019

Я вытаскиваю своих членов и владельцев из списка SP, а затем добавляю их в группу во время их циклического повторения.

using Newtonsoft.Json;

// Look up people in SPO column Members and try to add them to the newly created group

string membersPull = item.Fields.AdditionalData["_x010c_lenov_x00e9_t_x00fd_mu"].ToString();
string ownersPull = item.Fields.AdditionalData["SpravciTymu"].ToString();

//on the very bottom, there is another class utilizing this JSON extraction

var members = JsonConvert.DeserializeObject<List<Receiver>>(membersPull);
var owners = JsonConvert.DeserializeObject<List<Receiver>>(ownersPull);

foreach (var member in members)
{

 var memberUPN = member.Email;


 Console.ForegroundColor = ConsoleColor.Yellow;
 Console.WriteLine("Adding user: " + member.Email);
 Console.ResetColor();
 try
 {
     var addMember = await graphServiceClient.Users[memberUPN].Request().Select("id").GetAsync();
     await graphServiceClient.Groups[groupID].Members.References.Request().AddAsync(addMember);

 }
 catch
 {
    Console.ForegroundColor = ConsoleColor.DarkYellow;
    Console.WriteLine("USER " + memberUPN + "is already MEMBER of: " + group2.DisplayName);
    Console.ResetColor();
 }
}

Тот же foreach для владельцев, за исключением команды выдачи:

await graphServiceClient.Groups[groupID].Owners.References.Request().AddAsync(addOwner);

Это вызов, который получает атрибуты людей из JSON -> извлечение электронной почты участников, которая также является UPN. Вы можете определить любую другую вещь, которая вам понадобится.

public class Receiver
{
    public string LookupId  { get; set; }
    public string LookupValue { get; set; }
    public string Email { get; set; }
}

Надеждаэто кому-то помогает: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...