Задача
Нам необходимо было разработать и внедрить компонент, предназначенный для получения и управления контактами (адресными книгами) и календарями в определенных веб-сервисах Microsoft, включая Office 365, Hotmail.com, Live.com, MSN.com, Outlook.com и Passport.com. Для разработки данного компонента мы использовали технологии .NET, C#, WPF, а также веб-службы Outlook REST API, Outlook REST API v2.0 и механизм аутентификации Azure AD v2.
Решение
Платформа API Office была взята за основу для реализации компонента и взаимодействия со службами, поддерживающими Outlook REST API. Платформа включает в себя SDK Office 365 для Microsoft Visual Studio. Они, в свою очередь, предоставляют библиотеки .NET, которые охватывают службы REST Office 365 и обеспечивают более простой способ подключения к данным Office 365, включая почту, календари, контакты, файлы и папки. Поскольку разработка базировалась на существующих модулях синхронизации, реализация нового свелась к созданию оболочек для Contacts API и Calendar API.
Описание
Ресурсы REST API, входящие в пространство имен Microsoft.OutlookServices, такие как Contact, ContactFolder, Calendar, CalendarGroup и Event, сыграли ключевую роль в обеспечении функциональности основных элементов пользовательских интерфейсов для работы с контактами и календарем.
Для обеспечения удобного доступа к данным пользователя мы разработали специальный модуль, ответственный за процессы аутентификации и выполнение запросов к REST API для получения необходимой информации. В данной реализации мы решили воспользоваться конечной точкой аутентификации Azure AD v2, поскольку она облегчает создание приложений, способных взаимодействовать как с организационными, так и с личными учетными записями Microsoft. Это означает, что пользователи могут войти в систему с помощью единого нажатия кнопки, независимо от того, принадлежит ли их аккаунт рабочей, учебной или личной сфере.
Отличительной особенностью Outlook REST является возможность пакетной обработки. Этот функционал предоставляет разработчикам возможность объединять несколько запросов в один HTTP-запрос, что существенно сокращает количество HTTP-соединений и связанных с ними накладных расходов. Пакетные запросы получают доступ к данным вошедшего пользователя, защищенным Azure Active Directory в Office 365 или в учетной записи Microsoft (Hotmail.com, Live.com, MSN.com, Outlook.com или Passport.com). Развертывание этой функции было для нас первоочередной задачей.
Ключевые характеристики
- Работа со службами, поддерживающими Outlook REST API: Office 365, Hotmail.com, Live.com, MSN.com, Outlook.com и Passport.com.
- Использование конечной точки аутентификации Azure AD v2. Отправка запросов REST Outlook в пакетном режиме. Использование пространства имен Microsoft.OutlookServices. Простая интеграция с модулями синхронизации приложения. Получение дерева ресурсов с контактами и календарями и создание нового ресурса. Проверка списка Контактов и Событий, ссылающихся на конкретный ресурс. Применение изменений к доступным ресурсам и их сохранение. Добавление и удаление ресурса.
Результат
Наш компонент служит основой для интеграции приложений со службами REST Office 365, в частности с Outlook REST.
На основе этого компонента могут быть разработаны несколько кроссплатформенных решений для Linux, macOS, Android и iOS для интеграции с Office 365. Они предполагают использование интегрированной среды разработки (IDE), а именно Microsoft Visual Studio, Eclipse и Android Studio или Xcode. Доступно простое и быстрое портирование кода и создание веб-приложений с использованием ASP .NET, PHP, Java, Python или Ruby on Rails.