SCAND aimed to develop and implement a component that provided getting and managing contacts (address books) and calendars within the following web services subsets: Office 365, Hotmail.com, Live.com, MSN.com, Outlook.com, and Passport.com.
For creating the component, we used:
- .NET, C# and WPF
- Outlook REST API web service
- Outlook REST API v2.0
- Azure AD v2 authentication
Office 365 APIs platform turned out to be the basis for implementing a component and bringing into action the interaction with services that support Outlook REST API. The platform involves Office 365 SDKs for Microsoft Visual Studio. They, in its turn, provide .NET libraries which wrap the Office 365 REST services and ensure an easier way to connect to the Office 365 data including mail, calendars, contacts, files, and folders.
As the development was based on existing synchronization modules, the implementation of the new one reduced to creating the wrappers for Contacts API and Calendar API.
These are modules that allow:
- Getting the resource tree with Contacts and Calendars and creating a new resource.
- Verifying the list of Contacts and Events that refers to a particular resource.
- Applying changes to the resources available and saving them.
- Adding a new resource.
- Deleting a resource.
REST API Resources belonging to the Microsoft.OutlookServices namespace, such as Contact, ContactFolder, Calendar, CalendarGroup, and Event, contributed to the implementation of the Contact and Calendar wrappers’ major functionality.
To provide the access to the user’s data, we have also created a module that handles user’s authorization and makes REST API requests for the data. Here we have opted for the Azure AD v2 authentication endpoint because it simplifies building an app that works with Microsoft both organizational and personal accounts. It means that work, school, and personal account users are empowered to sign in with a single button push.
As for Outlook REST, one of its specific features is batching. It lets the developers put multiple requests in a single HTTP batch request thus reducing the number of HTTP connections and overhead. The batch requests access the data of a signed-in user, secured by Azure Active Directory in Office 365 or in a Microsoft account (Hotmail.com, Live.com, MSN.com, Outlook.com, or Passport.com). It was a top-priority feature for us to deploy.
In short, the component we have created covers:
- Working with the services that support Outlook REST API: Office 365, Hotmail.com, Live.com, MSN.com, Outlook.com, and Passport.com.
- Using Azure AD v2 authentication endpoint.
- Sending Outlook REST requests in batches.
- Using the Microsoft.OutlookServices namespace.
- Simple integration with the application’s synchronization modules.
Our component will serve as a core of making the applications to integrate with the Office 365 REST services, Outlook REST in particular, as it facilitates easier access to the Office 365 data.
Driven by the component, multiple cross-platform solutions for Linux, macOS, Android, and iOS to integrate with Office 365 might be developed. They presuppose using Integrated Development Environment (IDE), namely Microsoft Visual Studio, Eclipse and Android Studio, or Xcode. Easy and quick code porting and building web applications using ASP .NET, PHP, Java, Python, or Ruby on Rails are available.