Невозможно восстановить пользовательские свойства (коллекции, такие как контакты)

#c# #microsoft-graph-api #microsoft-graph-sdks

#c# #microsoft-graph-api #microsoft-graph-sdks

Вопрос:

Я пытаюсь изменить для пользователя его контакты Outlook, однако я не могу даже получить их с помощью графического клиента. Приложение в основном представляет собой службу, которая проверяет подлинность с использованием client<>secret . Я пропускаю разрешения или я утверждаю это неправильно?

Я попробовал следующий код:

 IConfidentialClientApplication cca = ConfidentialClientApplicationBuilder
                .Create(Startup.Configuration["AppConfiguration:Office365:ClientId"])
                .WithClientSecret(Startup.Configuration["AppConfiguration:Office365:ClientSecret"])
                .WithTenantId(Startup.Configuration["AppConfiguration:Office365:TenantId"])
                .Build();

ClientCredentialProvider ccp = new ClientCredentialProvider(cca);
_confidentialClient = new GraphServiceClient(ccp);

User user = await _confidentialClient.Users["someone@something.com"]
    .Request()
    .Select(u => new
    {
        u.Id,
        u.Contacts
    })
    .Expand(u => new
    {
        u.Contacts
    })
    .GetAsync();
 

Ответ №1:

Чтобы перечислить пользовательские контакты, вы должны позвонить:

 https://graph.microsoft.com/v1.0/users/{id}/contacts
 

Графический клиент:

 await _confidentialClient.Users["someone@something.com"].Contacts.Request().GetAsync();
 

Если вы хотите изменить контакты, проверьте документацию:

Создать контакт

Обновить контакт