Microsoft Graph is the rich, robust API for an increasing number of products across Microsoft. Microsoft Graph has a large footprint of tools, SDKs, and API capabilities you can incorporate in your projects. Come see what's new across products and available for developers -- you'll take away code and tools you'll undoubtedly use as you build apps and services.
9. web, device,
and service apps
Extend Microsoft 365 experiences
1
iOS/Android/Windows/Web
Build your experience
Microsoft Graph
10. 1B+Meetings scheduled each
month with Office 365
181Countries with Knowledge
Workers using Office 365
65M+Enterprise Mobility seat
install base (+55% YoY)
90%Fortune 500 companies
have data in
Microsoft Graph
135MMonthly active users in
Office 365
450BUsers authenticated
each month
12. Intro – what is it and why is this important for you?
Build 2018 Announcements
Getting started and tools
Tips and tricks
API highlights
Next steps
13. Generally Available ( v1.0 ) Preview ( beta )
Office 365
Users and groups
Restore deleted user or group
Group lifecycle policy control
Outlook calendar, contacts and mail
Working hours, Message rules, Categories
Time Zones, Languages
OneDrive
File versions
SharePoint sites and lists
SharePoint framework integration
OneNote, Excel and Planner
Reporting
Windows
Cross device Activity Feed (MSA + AAD)
EMS
Azure AD
Intune app and device management
Office 365
Bookings
appt. based small business management
Microsoft Teams
read chat messages
Outlook
Tasks
Search folders
OneDrive
large file copy, move
File conversion from 200+ file formats
Windows
Cross Device Relay experiences (MSA)
EMS
Security Alerts and Providers
Azure AD
Audit & reports
GDPR - export my data, forgot me
Governance – Terms of Use and Management: PIM for Azure RBAC
Privacy Profile
Data sets
14. Generally Available ( v1.0 ) Preview ( beta )
Webhooks
Mail, calendar, contacts, drives
Users + groups
Delta query
Mail, calendar, contacts, drives
Azure AD sync from now onwards
Users + groups scoping filters
Open and schema extensions
Increased batching limits
SDKs
.NET (client + server)
JavaScript with TypeScript type definitions
PHP
Android
Python
Webhooks
List subscriptions
Delta query
Planner tasks and plans
Azure AD sync from now onwards
Extensions
AD to Azure AD (User ExtensionAttributes1-15)
OneDrive websockets
Open API (Coming Soon)
Managed access
SDKs
Java
Capabilities
16. Intro – what is it and why is this important for you?
Build 2018 Announcements
Getting started and tools
API highlights
Tips and tricks
Next steps
17. Developing with Microsoft Graph
TRY
Graph Explorer and
Quick starts
LEARN
With docs and API
reference
DEVELOP
With SDKs, samples
and tooling
https://graph.microsoft.com
18.
19. Intro – what is it and why is this important for you?
Build 2018 Announcements
Getting started and tools
API highlights
Tips and tricks
Next steps
20. your -
Users, Groups, Organizations
Outlook
SharePoint
OneDrive
Teams
Planner
Excel
OneNote
Activities
Device Relay
Commands
Notifications
Azure AD
Intune
Identity Manager
Advanced Threat Analytics
Advanced Threat Protection
Mail, Calendar,
Contacts and Tasks
Sites and Lists
Drives and Files
Channels, Messages
Tasks and Plans
Spreadsheets
Notes, and more…
Identity Management
Access Control
Synchronization
Domains
Administrative Units
Applications and Devices
Advanced Threat Analytics
Advanced Threat Protection
Alerts
Policies
and more…
Office 365 Windows 10 Enterprise Mobility + Security
https://graph.microsoft.com
30. document approval
SELECT DOCUMENT
GET /drives/{id}/root/children
GET /drives/{id}/items/{id}
/thumbnail
GET /drives/{id}/items/{id}
BUILD MESSAGE SEND MESSAGE
POST /me/photo/$value
GET /drives/{id}/items/{id}
/thumbnail
POST /me/sendMail
POST
/me/drive/items/{itemId}/createLink
31. Create a
team
Add members
and owners
Configure
team settings
Add
channels
Post a
welcome
message
Delete the team
when the time
comes
To learn more, join Microsoft Team’s breakout session BRK2403.
34. Approval workflows | Set up a team
POST /groups
PUT /groups/{id}/team
ADD MEMBERS & OWNERS
POST /groups/{id}/team/channels POST /groups/{id}/members/$ref
CREATE A TEAM ADD CHANNELS
POST /groups/{id}/owners/$ref
38. To learn more, join Security’s breakout session BRK2435 or visit aka.ms/graphsecuritydocs.
Request
security/alerts?filter=Category eq 'ransomware'&$top=5
Coming Soon:
/securityProfiles
Connect business context to security data by defining security-related assets.
/actions & /config
Automate remediation activities and set policy configurations for security services.
44. ♥
Data
connectors
PowerApps Power BI
Common Data Service
for Analytics
Common Data Service
for Apps
Microsoft Flow
Dynamics 365 Office 365 Standalone Apps
To learn more, join PowerApps and Graph’s theatre session THR2425.
46. Intro – what is it and why is this important for you?
Build 2018 Announcements
Getting started and tools
Tips and tricks
API highlights
Next steps
47.
48. TIP 1 |
Quickly try requests
from your browser
Supported accounts:
Demo (commercial)
Consumer (@outlook.com)
Commercial (@fabrikam.com)
And it’s open source
49. Intent HTTP METHOD Description Example
List GET List collection GET /users
Get GET Get member of the collection GET /users/{id}
Create POST/PUT Create new item in the collection POST /users/
PUT /me/activities/{id}
Update PATCH/PUT Update item PATCH /users/{id}
PUT /me/activities/{id}
Delete DELETE Delete item DELETE /users/{id}
Invoke POST Invoke operations POST /domains/{id}/verify
Batch POST Execute multiple requests POST /$batch
TIP 2 |
50. POST/PATCH/PUT
If your code doesn’t need
to get a response, then
opt out
Don’t send
unnecessary data
over the wire
Tip
Use HTTP
Prefer return=minimal
request header
Some services always return 204 No content for PATCH and PUT
53. Value Description Example
$filter Filters results (rows) /users?$filter=startsWith(givenName,’J’)
$select Filters properties (columns) /users?$select=givenName,surname
$orderBy Orders results /users?$orderBy=displayName desc
$top Sets the page size of results /users?$top=10
$expand Retrieves related resources /groups?$expand=members
$count Retrieves the total count of
matching resources
/me/messages?$top=2&count=true
$search Returns results based on search
criteria. Currently supported on
messages and person collections
/me/messages?$search=pizza
TIP 3 |
55. Use filters
GET ?
$filter=department eq ‘Sales’ & $select=givenName,mail
Choose the records your
app really needs and no
more
Don’t send
unnecessary data
over the wire
Tip
Use $filter
56. TIP 4 |
Graph uses server-
side page size limits
When querying
collections, Graph
may return the results
in many pages
Always expect an
@odata.nextLink
property in the response
Contains the URL to the next page
57. 1.
Always handle the
possibility that the
responses are paged
in nature
2.
Follow the
@odata.nextLink
to obtain the next
page of results
3.
Final page will not
contain an
@odata.nextLink
property
4.
Treat the entire URL
as an opaque string
To learn more, join Microsoft Graph best practices theatre session THR2411.
58. TIP 5 | Webhooks Delta query
Scenario
Same scenarios as before,
but if you need to
optimize further…
Tips
Use webhook notifications as the
trigger to make delta query calls
Put notifications in a queue for later
processing
Why
Difficult to figure out optimal
polling interval
61. TIP 6 |
Add custom data to resources using extensions
Open extensions
Schema extensions
To learn more, join Microsoft Graph best practices theatre session THR2411.
69. App type
Scenario
Who can
consent
Effective
Permissions
Delegated Permissions Application Permissions
Mobile, Web and SPA Service and Daemon
Users can consent
for self
Admin can consent
for self or all users
Only admin
can consent
Permissions
granted to
App
Get access as a serviceGet access on behalf of users
App
+
User
https://aka.ms/ConsentAndPermissions
Permissions
granted to
App
User’s
Permissions
70. Authorization serverResource owner
(end user)
OAuth client
(native or web app)
Resource Server
(REST API)
Grant access
Access
service
Access data
Delegate
AuthN/AuthZ
Bearer
token
76. file upload
TRACK GROUP ONEDRIVE
Using OneDrive File picker
POST /subscriptions
TRIGGER FUNCTION UPDATE LIST
GET /drives/{id}/items/{id}
Using Cognitive services
POST /drives/{id}/items/{id}
/lists/{list-id}/items/{item-
id}/fields
77. Intro – what is it and why is this important for you?
Build 2018 Announcements
Getting started and tools
Tips and tricks
API highlights
Next steps
79. Code Title Day Time
BRK2421 To sign in and beyond: Doing more with your apps and Azure AD Mon 2:45
BRK2403 Build the ultimate team hub with Microsoft Teams Mon 2:45
BRK2427 Spatial Analytics for Mixed Reality Mon 4:30
BRK2407 Microsoft Graph: Connect to essential data every app needs Tue 1:15
BRK2435 Unlocking security insights with Microsoft Graph API Tue 1:15
BRK2417 Drive user reengagement across all your Windows, Android, and iOS
with Microsoft Graph Activities and Devices
Tue 3:00
BRK2409 Leveraging SharePoint as a development platform for the modern
intranet
Tue 4:45
BRK2406 Coding Enterprise Apps for Intune – Protected, Secured & Integrated Wed 8:30
BRK2410 Data-Driven and User-Centric: Improving enterprise productivity and
engagement through graph powered notifications
Wed 4:30
BRK2402 Build intelligent analytics apps with Microsoft Graph and Azure Wed 4:30
Breakout sessions
80. Code Title Day Time
THR2425 PowerApps + Microsoft Graph Mon 4:30
TSP2114 Enterprise Calling and Meetings Bots for Microsoft Teams Mon 7:00
THR2414 Building business processes with content in OneDrive and SharePoint Mon 8:00
THR2411 Best practices with Microsoft Graph: Making your applications more
performant, resilient, and reliable
Tue 3:30
THR3304 Cognitive Services + Microsoft Graph Tue 5:30
THR2430 Intelligent Edge: Microsoft Graph and IoT Wed 9:00
THR2413 Bots + Teams + Microsoft Graph: the perfect combo to help manage
your calendar
Wed 11:00
THR3302 Azure Functions and Microsoft Graph Wed 12:30
THR2436 Barracuda Sentinel: Microsoft Graph powered AI for real-time cyber
fraud defense
Wed 1:00
THR2437 Smart UI with Adaptive Cards, Microsoft Graph and beyond Wed 2:00
Theatre sessions
81. Code Title Day Time
WRK2512 Build mobile apps with Microsoft Graph Tue 10:30
WRK2504 Creating more engaging applications with User Activities and Timeline Mon 2:45
WRK2506 How to Build Security Applications using the Microsoft Graph API Tue 3:00
WRK2510 Build intelligent intranet portals with SharePoint Wed 4:00
Workshops
Find us on Channel 9 for videos of new features and more
83. Join the Office Developer Program
Learn more
Come hack with us - aka.ms/office365hackathon
Visit dev.office.com
See everything from Build - https://aka.ms/OfficeBuild2018
Follow us - @OfficeDev, #MicrosoftGraph, #SharePoint @MicrosoftTeams
Join community calls – Microsoft Graph, AAD, Outlook, Teams, Excel, and SharePoint
84.
85.
86. Join the Office Developer Program
Learn more
Come hack with us - aka.ms/office365hackathon
Visit dev.office.com
See everything from Build - https://aka.ms/OfficeBuild2018
Follow us - @OfficeDev, #MicrosoftGraph, #SharePoint @MicrosoftTeams
Join community calls - Graph, AD, Outlook, Teams, Excel, and SharePoint
87. CODE TITLE DATE START
BRK2420 Streamline business processes with Flow and Office 365 5/7/2018 1:00PM
BRK3507 Create productive apps with Office 365 5/7/2018 2:45PM
BRK2407 Microsoft Graph: Connect to essential data every app needs 5/7/2018 2:45PM
BRK2419 Smarter data analysis with JavaScript and Azure ML functions in Excel 5/8/2018 10:30AM
BRK2403 Build the ultimate team hub with Microsoft Teams 5/8/2018 1:15PM
BRK2409
Leveraging SharePoint as a development platform for the modern
intranet
5/8/2018 4:45PM
BRK2418 New experience in Outlook 5/9/2018 2:45PM
BRK2402
Build intelligent analytics apps with Microsoft Graph and Azure
capabilities
5/9/2018 4:30PM