Yina Arenas, principal program manager for the Microsoft 365 Ecosystem, gave a BUILD 2018 session on how to use Microsoft Graph to connect to essential application data. Using Microsoft Graph, application developers can help users to begin to focus on tasks to be accomplished, rather than applications to run. The talk focused on the Build 2018 Microsoft Graph announcements, how to get started using Microsoft Graph, what tools to use, as well as the main APIs and tips and tricks to use them.
Why is Microsoft Graph Important?
In the course of a given day, a great deal of data is created, primarily of three types: intentional data that is static such as documents or user profiles, conversational data that are feeds, and ambient data that are signals such as the people with whom you interact. Insights can be extracted from the ambient data. These constellations of data go into Microsoft Graph.
Microsoft Graph is a gateway to this data which is owned and controlled by the user. If you are a Microsoft customer, business, or consumer, your data is already in Microsoft Graph. Currently this data comes from Office 365, Windows 10, and Enterprise Mobility and Security. This data consists of a user's Microsoft Identity, rich context from what a user is doing, deep insights from the signals, and real time updates from notifications built into the graph. Aplication developers can get access to the data in the graph, whether from a Web App, Native App, a Bot, or a background process.
Since, over time, the use of Microsoft Graph will remove the focus of users from applications to the actual task that they are trying to accomplish, Microsoft has started to use the word "experience" instead of application when referring to those applications that interact with Microsoft Graph.
Developer Opportunities
Microsoft Graph is accessed with a REST API with one endpoint and one authorization key. The graph is accessed with one SDK, irrespective of whether the data came from Intune, SharePoint, or another application.
Developers can add data to the graph using add-ins to experiences that already use Microsoft Graph such as Excel, bots and cards in Microsoft Teams, Web Parts in SharePoint pages, or the Windows Timeline. Developers can also build their own experiences that add data to the graph.
To give you an idea of the magnitude of the opportunity for an ISV, 90% of Fortune 500 companies have data in Microsoft Graph. There are 135 million active users in Office 365. 450 billion users are authenticated each month using these services. There are over 65 million devices installed in 181 countries using Office 365. Over one billion meetings are scheduled each month with Office 365.
There is a service that will allow managed access to Microsoft Graph from Azure.
BUILD Announcements
There are many new data sets available as well as new capabilities.
The major new data sets are the activity APIs which allow a developer to populate the Windows Timeline with their own activities. There is a booking API that allows you to book appointments, as well as a revised version of the Teams API. Times zones, languages, working hours, and message rules are now available within Outlook.
The major new capabilities are Webhooks for users and groups, delta queries for Azure AD sync, as well as users and groups. The batching limits have been increased. There is further information on the blog, as well as videos, and the Microsoft Graph change log.
Getting Started
The developer portal contains examples of applications and services. The portal also contains "quick starts" which help you to get started on platforms other than .NET. The portal also contains the documentation for Microsoft Graph. The Graph Explorer allows you to specify requests and see the responses based on the available data. You can use the sample data, or your own. You can also see requests that are in beta. If you use your own data, you can also modify the data. The Graph Explorer code is open-source.
Developing with Microsoft Graph
Currently, Microsoft Graph has APIs in three services: Office 365, Windows 10, and Enterprise Mobility and Security.
The talk gave a few examples of what you can do with Microsoft Graph.
One of the simplest things you can do is to customize the experience for a user by getting a picture from the user profile. You send the request: GET https://graph.microsoft.com/v1.0/me/photo/$value HTTP/1.1. The response returns an image as the Content-Type. You are leveraging the Microsoft Identity of a user to provide a personalized experience without having to log into every service with a new form.
The OneDrive APIs are also available within SharePoint as well as the personal OneDrive. You can enumerate and search, upload and download large files, asynchronously copy or move across OneDrives, manage permissions and links, version, convert to PDF, and prevent data loss.
The Outlook APIs can access your messages and calendar. Besides managing your mailbox, you can do full text searches on mail and attachments, define work rules to create workflows, and create categories. In addition to managing your calendar, you can also schedule meetings with multiple attendees and rooms. You can also use adaptive cards to send actionable messages. Adaptive cards use a JSON based schema that can be rendered in the Bot Framework, Cortana, Outlook, Microsoft Teams, Skype, Windows timeline and notifications.
You can also simplify the management of security alerts.
You can build applications that combine data from all the data sources in the graph. The talk gave several examples of how to build these applications.
There are also pre-built connectors to Microsoft Graph for Dynamics 365, Office 365, and for standalone applications such as Power Bi.