UWP Получить локальные контакты Outlook

После нескольких часов исследований мне удалось получить контакты из Outlook, используя офисную библиотеку взаимодействия, используя этот код.

        var outlookApplication = new Application();
        NameSpace mapiNamespace = outlookApplication.GetNamespace("MAPI");
        MAPIFolder contacts = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);

        for (int i = 1; i < contacts.Items.Count + 1; i++)
        {
            var contact = (ContactItem)contacts.Items[i];
            Console.WriteLine(contact.FullName);
            Console.WriteLine(contact.Email1Address);
            Console.WriteLine();
        }

Моя цель - сделать что-то подобное в приложении UWP. Когда я пытаюсь добавить библиотеку взаимодействия Outlook в UWP, я получаю сообщение об ошибке. После некоторого чтения я обнаружил, что не могу использовать эту библиотеку COM в приложении UWP. Итак, мой вопрос: как я могу получить контакты Outlook в приложении UWP, как в приведенной выше версии?


person Razvan Ghena    schedule 04.05.2017    source источник
comment
Используйте Outlook Calendar REST Api msdn.microsoft.com/en -us / office / office365 / api /   -  person Samvel Petrosov    schedule 04.05.2017
comment
Я думаю, что этот API предназначен только для Office 365, а не для исходных версий.   -  person Razvan Ghena    schedule 04.05.2017
comment
Я использовал его с учетной записью Outlook, и у меня нет никаких проблем. Я работал с JavaScript, но не думаю, что это имеет какое-то влияние.   -  person Samvel Petrosov    schedule 04.05.2017


Ответы (1)


Вам нужно будет использовать веб-API, например График, Контакты Outlook или веб-службы Exchange. Приложения UWP изолированы и не могут получить доступ к данным учетной записи электронной почты из почтовых клиентов Win32. Таким образом, вы можете получить доступ к данным электронной почты в Интернете только в Exchange, Office 365 или Outlook.com.

person Eric Legault    schedule 05.05.2017
comment
Я также пробовал веб-службы Exchange, и мне кажется, что я даже не могу добавить пакет для EWS в приложение UWP. - person Razvan Ghena; 05.05.2017
comment
Вы не можете использовать управляемый API EWS, но вы можете использовать любой подход, основанный на REST, для отправки запросов EWS и обработки ответов. - person Eric Legault; 05.05.2017
comment
Позвольте мне пояснить. Я хочу получить доступ к локальному серверу Exchange Server и получить оттуда контакты. Не могли бы вы уточнить свой ответ? Я пробовал EWS, но кажется, что он не работает в приложении UWP. - person Razvan Ghena; 08.05.2017
comment
Вероятно, вы пытаетесь использовать управляемый API EWS, который нельзя использовать в приложении UWP. Однако все методы EWS можно вызывать через REST, отправляя запросы XML в методах POST или GET и получая ответы XML. Вам не нужно устанавливать ссылку на какие-либо API-интерфейсы Exchange. См. Пример здесь: msdn.microsoft.com/en-us/ библиотека / office / dn789003.aspx - person Eric Legault; 08.05.2017