At Build 2017, we announced several new Microsoft Graph APIs and capabilities, marking another significant addition to the toolset we offer to developers who build business applications and processes.
Microsoft Graph creates connections between people, activities, and now devices. Microsoft Graph supports intelligent business processes, facilitates collaboration and information sharing, delivers insights about your organization, and simplifies management of your organization's users, data, devices, and apps.
This blog takes a deeper look at our Microsoft Graph announcements, and is focused on three key themes: "Build data-rich applications with new data sets", "Build Powerful Apps with new Platform Capabilities" and finally, "Build Apps easily with simplified developer experience".
1. Build data-rich applications with new data sets
We continue to increase the number of data sets available through Microsoft Graph. As a developer, you can use these additional data sets to create intelligent applications with new APIs that are production ready or on our beta endpoint.
SharePoint sites API is now in the Microsoft Graph v1.0 endpoint
For the past several months we've exposed SharePoint sites functionality to the development community through our beta endpoint. This functionality, which allows you to discover and work with the set of metadata and relationships for SharePoint sites that is relevant to the users, organizations, and applications, is now available for production use.
Learn more: See Working with SharePoint sites in Microsoft Graph.
Planner API is now in the Microsoft Graph v1.0 endpoint
The Planner API allows apps to create tasks and assign them to users in a group in Office 365. In addition to the recently announced support for tasks assigned to multiple people, you will find updates including a new /planner/ segment for all planner resources and a new scheme for specifying orderHints.
Learn more See the Planner API documentation and watch Eray from our engineering team talking about the Planner APIs at dev.office.com/build-videos.
OneNote APIs are now in the Microsoft Graph v1.0 endpoint
You can use the OneNote APIs in production to build rich integrations with OneNote notebooks stored in both OneDrive for consumers and OneDrive for Business. Here's what's new:
Support for Azure AD v2.0 authentication: New support for the Azure Active Directory (Azure AD) v2.0 authentication endpoint will allow both personal and work and school account users to use the OneNote API on the Microsoft Graph endpoint.
User and group notebooks: All calls to the OneNote service through the Microsoft Graph API use the following service root URL:
The location can be user notebooks in OneDrive for consumers and in Office 365 (across Office 365 groups and OneDrive for Business). SharePoint site-hosted notebooks will be supported in an upcoming release.
Microsoft Teams APIs are now in the Microsoft Graph beta endpoint
Microsoft Teams is the new chat-based workspace in Office 365. As of today, you can start integrating with Microsoft Teams via enhancements to the Groups API in Microsoft Graph. Your app can see which teams a user belongs to, list the channels in that team or even create a new channel and then send a new chat message there on behalf of the user. Imagine an incident management app that lets you click to update the team about the incident's latest status. In addition, most of the existing Groups APIs, such as files, notes, and plans work with Microsoft Teams too. This is just the first step in a journey that will provide even richer API access to team-based chat messages and data over time.
Learn more: See our Groups and Teams documentation.
New Insight APIs in the Microsoft Graph beta endpoint
Microsoft Graph's Insight APIs expose calculated, relevant insights based on the users' activity. For example, you can use the Trending API to get documents that are trending, or use the People API to get data about how users work together. We are adding two new Insights APIs at the end of May 2017: the Used and the Shared APIs.
The Used API returns documents that users in your company have worked on and will most likely want to get back to in the future. It's a convenient way to access the most relevant documents that a user viewed or modified. This includes documents used in OneDrive for Business and SharePoint.
The Shared API provides a user with a way of getting back to the most relevant documents that others have shared with them, even a specific user. The API brings together files shared as email or meeting attachments, and modern attachments from OneDrive for Business, SharePoint, and from providers like Box, DropBox, and Google Drive.
Learn more: Watch Mario from our engineering team discuss the Graph Insights API at https://aka.ms/officeatbuild.
Refreshed SharePoint list APIs in the Microsoft Graph beta endpoint
Organizations of all sizes use SharePoint to house sites, critical documents, and a wide range of other digital assets. We're updating the SharePoint list APIs in the Microsoft Graph beta endpoint. With these APIs, you can work with the set of SharePoint lists that are relevant to users and organizations.
In addition to the set of core scenarios we support, like access to lists, support for list resources, and rewrite support for listItems and driveItems, we are updating the preview to include new functionality that allows for the creation of lists, content types, and site columns for SharePoint Lists.
Learn more: See Working with SharePoint sites in Microsoft Graph.
Office 365 Reporting APIs in the Microsoft Graph beta endpoint
For over a year we've given IT administrators insights about their users' usage and adoption of Office 365. We've now created a set of Reporting APIs in Microsoft Graph that are available for public preview. With this set of APIs, you can programmatically access usage reporting data and potentially integrate it into your existing reporting solutions.
Seventeen separate reports are available to users. These reports focus on either usage or activity of core Office 365 products (Email, SharePoint, Skype for Business, Yammer) or Office 365 itself (Active Users, Activations). Microsoft Graph returns a .CSV file for each report type it returns.
Microsoft Graph beyond Office: Intune and other APIs
We're continuing to drive the growth of Microsoft Graph to include new, even richer data sets that go beyond Office.
Intune APIs (beta refresh). You can find Intune APIs on the beta endpoint to explore new ways to manage your organization's assets including users, devices, and applications
Active Directory Management APIs. This includes tools for you to build solutions that involve administrative units, domains, policies, and licensing.
Device and Activity Roaming APIs. Build experiences that drive engagement between devices and platforms, and help users roam their experiences across PCs, Xbox, IoT, HoloLens, and of course phones â€“ including Windows, Android, and iOS, with the new device and activity APIs from Project Rome.
2. Build powerful apps with new platform capabilities
We have announced updates to the capabilities of the Microsoft Graph platform that give you more ways to build great apps. With these capabilities, you can create even more powerful solutions that discover and act upon changes in Microsoft Graph datasets or extensions to those datasets.
You can ensure that the data in your app is up to date with changes in the cloud using delta query, which is now available in the v1.0 endpoint and production ready.
Delta query enables applications to discover newly created, updated, or deleted entities without performing a full read with every request for resources in Azure Active Directory (Azure AD) and Outlook. You can now discover changes to Users, Groups, Messages, Mail Folders, Calendar Events, Personal Contacts, Contact Folders, and Drives. Applications with local data stores can use delta query to efficiently synchronize data with Microsoft Graph. Stateless apps without local data stores can also benefit from delta query by using it to perform simple change tracking on resources in which they are interested.
Here's an example of an initial delta query GET request to the Outlook calendarView:
A GET request will return either a nextLink or a deltaLink (containing a URL with a delta function call and a state token).
We're pleased to announce additional webhooks in the Microsoft Graph API. Client apps can already subscribe to and receive notifications about changes on a number of resources including messages, events, contacts, group conversations, and drive root items. As of today, we're introducing new subscriptions to Azure AD Users and Groups and additional support for Outlook.com resources. This helps organizations build key processes around user onboarding and profile updates.
Learn more: See the webhooks documentation and sample code on our website. We make Microsoft Graph webhooks code samples and documentation available in GitHub for developers working in Node.js and ASP.Net. Be sure to check out the video with Jeff, one of our engineers, discussing webhooks and delta queries at https://aka.ms/officeatbuild.
Custom data extensions in Microsoft Graph
There is now a way for you to extend Microsoft Graph with your own custom data, and this functionality is now ready for production use. You can now associate additional custom data of your own (for example, add security/clearance levels or professional certifications to user profile data) with information in Microsoft Graph. Microsoft Graph lets you create extensions and add custom properties to its resources without requiring an external data store.
Two types of extensions are available:
- Open extensions, which are a good way to get started with extensions.
- Schema Extensions, which offer a more versatile way to store typed data, make your schema discoverable and shareable, filter, and in the future, perform input data validation and authorization.
Optimize app performance with batching
With JSON batching requests, users can now combine multiple requests to Microsoft Graph in a single HTTP call.
The JSON batch request is always send using POST to the /$BATCH endpoint. The body of the JSON batch request is a single JSON object and requires a request property. The request property then contains the array of individual requests required, as well as ID, method, and URL properties. In addition to the standard JSON batch request, we also enable request grouping via the atomicityGroup property. Batch requests can be sequenced, asynchronous, and used to bypass URL length limitations. Of course, these request capabilities also have certain limitations.
Learn more: We will post detailed documentation on batching in the coming weeks at graph.microsoft.com.
3. Build apps easily with a simplified developer experience
We continue to focus on the developer experience. At Build, we introduced several enhancements aimed at improving how developers working in different languages and on different platforms can work with Microsoft Graph.
New and Updated Microsoft Authentication Library (MSAL) Previews
Learn more: Check out the developer center for MSAL and the Azure AD v2.0 endpoint.
Improving the developer experience
We've rolled out an update to the Graph Explorer, giving it a new look and expanding its capabilities. Graph Explorer users can now try out preconfigured sample queries, set request headers, use post body templates, and more.
We're also making it easier for you to get started with Microsoft Graph. We updated the Quick Start to reduce the number of steps and to give you a more meaningful sample that showcases multiple scenarios.
In Visual Studio, we've also updated the Connected Services experience to let you configure your project and register your app in just a few clicks. To learn more, see Call Office 365 in Visual Studio with the Microsoft Graph API.
We also recognize that the developer community is global so we're continuing to localize the content on the Microsoft Graph developer portal. Content is available in nine languages. In addition to English, German, Japanese, and Chinese (Simplified), you can find French, Portuguese, Spanish, and Russian language content.
Whether you attended Build 2017 in person or online, thank you for taking the time to read our blog. We hope that the Microsoft Graph capabilities we've introduced here - new datasets, expanded platform tools, and improved developer experience help you build more powerful, intelligent, and connected applications. We love to hear stories about how people are using Microsoft Graph, and your feedback is always appreciated. Connect with us on Twitter by posting with #MicrosoftGraph, and send us your questions on Stack Overflow, tagged MicrosoftGraph. Happy coding!
- The Microsoft Graph team.