Upload
doanmien
View
237
Download
3
Embed Size (px)
Citation preview
The opportunity
Microsoft Graph - the Basics
Using Microsoft Graph
Roadmap
Agenda
90%of Fortune 500
companies
Are using data in Microsoft Graph
100Mmonthly
active users
Office 365 commercial
subscriptions
50K+new SMBs per
month
In Office 365
8Tresources
in Microsoft Graph
(emails, events, calendar, users, files)
GROUPS
ME
CONVERSATIONS CONTENT
INSIGHTS
CONTACTS
PEOPLE
ORGANIZATION
TASKSEMAIL
EVENTSDOCUMENTS
DEVICES
CHATS
SITES
ACTIVITY
TRENDING
SHARED
REPORTS
Microsoft Graph
STANDALONE WEB AND DEVICE APPS
Î Î
EXTENSIONS
EMBEDDED CANVASES
The opportunity
Microsoft Graph - the Basics
Using Microsoft Graph
Roadmap
Agenda
Users Groups Outlook Calendar SharePointExcel IntuneTeams Azure ADOneNote Planner
https://graph.microsoft.com
Your appOne endpointOne tokenAll users
Datapreviewpreview
GAGAGA
GROUPS
ME
CONVERSATIONS CONTENT
INSIGHTS
CONTACTS
PEOPLE
ORGANIZATION
TASKSEMAIL
EVENTSDOCUMENTS
DEVICES
CHATS
COLLABORATION
ACTIVITY
TRENDING
SHARED
REPORTS
profile
GET: /users/mikeam {
"displayName": "Mike", "jobTitle": "DIR, PRODUCT MTKG ECOSYSTEM",
}
GET: /users/mikeam/photo/…{}
GET: /users/mikeam/manager{"displayName": "Rob", …}
GET: /users/mikeam/directReports"value" : [
{"displayName": "Matt", …},{"displayName": "Dmitry", …},
]
GET: /me/memberOf/…"value" : [
{"displayName": "Office marketing", …}]
Robmanager
Dmitry Matt Sudhi
directReports
GroupsmemberOf
content
GET /me/drive/root/…"value" : [
{"name": "proposal.pptx",… },{"name": "forecast.xlsx",… }
]
GET /drives/items/{id}/workbook
GET /me/messages
GET /me/events
GET /me/contacts
GET /me/onenote/notebooks
GET /me/planner/tasks
GET /me/devices
GET /sites:/teams/opg:/
GET /sites:/teams/opg:/lists
GET /groups/{id}/conversations
Documents
Contacts
Calendar
Tasks
Meetings
Sites
insights
GET /me/insights/trending"value" : [
{"name": "presentation.pptx", …},{"name": "forecast.xlsx", …}
]
GET /me/drive/recent"value" : [
{"name": "guidelines.pptx", …},{"name": "budget.xlsx", …}
]
GET people/?$search="topic: planning""value" : [
{"displayName": "Dan", …},{"displayName": "Sean", …},
]
POST: /me/findMeetingTimes{
"attendees": [ {
"type": "required", "emailAddress": {
"address": "[email protected]" }
], "meetingDuration": "2h"
}
TrendingDocuments
People I’m working with
Find me the best time to meet Ana
Out of office
Search people based on topics
RecentDocuments
Agenda The opportunity
Microsoft Graph - the Basics
Using Microsoft Graph
Roadmap
/v1.0 /beta
/users /groups /sites /drives /devices more…/users/AAA
/users/AAA/department/users/AAA/events
/users/AAA/events?$top=5$select $orderby
$filter $expand
$top $skip $skiptoken
/{version} ?{query-parameters}/{resource}/{id}/{property}
access_token
Register your app at https://apps.dev.microsoft.com
MSAL
YOUR APP
MicrosoftGraph
id_token
access_token refresh_token
MicrosoftIdentity
https://github.com/Azure-Samples/active-directory-xamarin-native-v2
https://github.com/OfficeDev/TrainingContent/tree/master/O3654/O3654-3%20Xamarin%20Forms
https://github.com/microsoftgraph/xamarin-csharp-propertymanager-sample
App type
Who can consent
Permissions of the request
Get access on behalf of users Get access as a service
Mobile, Web and Single page app Service and Daemon
Users can consent for their data
Admin can consentfor them or for all users
Only admin can consent
App permissions
User permissions
App permissions
Capabilities
Traversal of relationshipsQuery parametersBatching - previewNotifications - users & groups previewTrack changes - GAExtensions - GA
$batch
BatchingPOST /$batch{
"requests": [{"id": "1","url": "/me/drive/root/children","method": "POST","body": {
"name": "folder1","folder": {}
},"headers": {
"content-type": "application/json"}
}, {"id": "2","url": "/me/drive/root/children/folder1","method": "GET","dependsOn": ["1"]
}, {"id": "3","method": "GET","url": "/me/planner/tasks"
}, {"id": "4","method": "GET","url": "/groups/{id}/events"
}]
}
Documents
Contacts
Calendar
Tasks
Meetings
Sites
notifications track changesGET/me/mailFolders/{id}/messages/delta"@odata.deltalink":"me/mailfolders('AA')/messages/delta?$deltatoken=BB","value" : […]
POST /subscriptions{
"changeType": "created,updated", "notificationUrl": "https://app.net/callback","resource": "/me/mailfolders('AA')/messages",
}
GET/me/mailFolders/{id}/messages/delta?$deltatoken=BB""value" : […]
Edited a file
Got a new hire
Added a new member to a group
Scheduled a new meeting
Got high important email
extensions
Open ExtensionsGET /me/message/<id>/?$expand=extensions{"displayName": “Mike", "extensions": [
{"extensionName": "Com.Contoso.Referral","companyName": "Wingtip Toys","expirationDate": "2017-12-30T11","dealValue": 10,000
}]
}
Schema extensionsPOST /schemaExtensions{
"id": "training_courses", "targetTypes": [ "Group" ],"properties": [
{"name": "courseName","type": "String"
}…]
}
GET /groups?$filter=courses/name eq Math101
Customer referral email
Carlo’s son: Johnny
Favorite color: blue
Group: Math 101
Easy access to data and intelligence
in Office365
Secure at the core
Web Standards, Open Platform
HTML
Active users
100M+
Smart Meetings
Custom Dashboards
Intelligent Business Process
Smart Pickers
Graph-Powered Bots
Graph-Connected Devices
… and MORE
Agenda The opportunity
Microsoft Graph - the Basics
Using Microsoft Graph
Roadmap
Data Generally Available ( v1.0 ) Preview ( beta )
Azure Active DirectoryOutlook mail, calendar and contactsOffice 365 groups and conversationsOneDrive drives and filesExcelPlannerOneNoteSharePoint Sites
People Microsoft TeamsInsights (powering Delve)SharePoint Lists Outlook TasksIntuneOffice 365 ReportingAD Administrative UnitsProject Rome
Capabilities Generally Available ( v1.0 ) Preview ( beta )
Webhooks for OneDrive and OutlookDelta query for OneDriveSDKs for .Net/Xamarin and AndroidSDKs for JS/Node and PHPAppOnly webhooks for OutlookDelta query for AAD and OutlookExtend Graph with your own data
SDKs for iOS, Python, RubyHybrid on-premise support for Outlook (config wizard support)Webhooks for users and groups Webhooks for Outlook consumerDelta query scoping filter for AADBatching
Microsoft Graph is available in every Office 365 and Azure region and complies with sovereign/national cloud data requirements
https://graph.microsoft.com
Twitter#MicrosoftGraph
GitHub/MicrosoftGraph
StackOverflow[MicrosoftGraph]