SlideShare a Scribd company logo
1 of 29
Deep Dive Building Office Mail
Add-ins with the Microsoft Graph
Bram de Jager
Lead Architect, Delaware Consulting, Netherlands
Agenda
› Microsoft Graph overview
› Office Add-ins overview
› Office Fabric UI overview
› Authentication
› Demo Contact Synchronization
› Wrap-up
Microsoft
Graph
overview
Deep Dive Building Office
Mail Add-ins with the
Microsoft Graph
WHAT CAN I BUILD?
Office Platform
ADD-INS AND WEB PARTS:
Make your solution a native
part of the modern Office
WEB AND DEVICE APPS:
Build smarter apps by
connecting to Office services
VOICE, VIDEO,
CONNECTORS, AND BOTS:
Create the next generation
of productivity solutions
What is Microsoft Graph?
› Single API for
› Accessing data
› /me, /users, /groups, /messages, /drive, ….
› Traversing data
› /drive/items/<id>/lastmodifiedByUser
› Accessing insights
› /insights/trending
› Work/School and Personal
https://graph.microsoft.com/
State of the world before Microsoft Graph
› Many different APIs to access data
› Separate auth stacks for work and personal
Work and school Personal
Today’s world with Microsoft Graph
Microsoft Graph
(https://graph.microsoft.com/)
Work and school Personal
…
Diverse API styles and endpoints
https://graph.windows.net/contoso.com/users
https://graph.windows.net/contoso.com/groups
https://apis.live.net/v5.0/me
https://contoso.sharepoint.com/_api/SP.UserProfiles.PeopleManager/GetMyProperties
https://graph.microsoft.com/v1.0/me/photo
https://outlook.office.com/api/v2.0/me/Messages
https://outlook.office.com/api/v2.0/me/Events
https://contoso-my.sharepoint.com/personal
/yina_contoso_com/_api/v2.0/drive
https://contoso.sharepoint.com/sites
/designCouncil/_api/v2./drive
https://api.onedrive.com/v1.0/drive
https://contoso.sharepoint.com/_api/search/query?Querytext='*'&Prop
erties='GraphQuery:actor(ME,action:1020,or(action:1020,action:1003
,action:1001,action:1024,action:1005,action:1037,action:1039,action
:1036)'&SelectProperties='Docid,Title
Operation Service endpoint
GET my profile https://graph.microsoft.com/v1.0/me
GET my files https://graph.microsoft.com/v1.0/me/drive/root/children
GET my photo https://graph.microsoft.com/v1.0/me/photo/$value
GET my mail https://graph.microsoft.com/v1.0/me/messages
GET my calendar https://graph.microsoft.com/v1.0/me/calendar
GET my manager https://graph.microsoft.com/v1.0/me/manager
GET last user to modify file foo.txt https://graph.microsoft.com/v1.0/me/drive/root/children/foo.txt/lastModifiedByUser
GET users in my organization https://graph.microsoft.com/v1.0/users
GET group conversations https://graph.microsoft.com/v1.0/groups/<id>/conversations
GET people related to me https://graph.microsoft.com/beta/me/people
GET my tasks https://graph.microsoft.com/beta/me/tasks
GET my notes https://graph.microsoft.com/beta/me/notes/notebooks
GET files trending around me https://graph.microsoft.com/beta/me/insights/trending
Unified API style – single endpoint
https://graph.microsoft.com
Office Add-
ins overview
Deep Dive Building Office
Mail Add-ins with the
Microsoft Graph
Introducing the add-in model
› Office add-ins are the means for enabling contextual experiences
› Office add-ins boost productivity by integrating services into Office client
› Office add-ins do not “live” on the Office client
› Custom code executes in the client, cloud, or on-premises
› Acquire add-ins via centralized location (store)
› Add-in catalog (SharePoint or FileShare)
› Public store (via submission process)
Write once, run everywhere
Office add-ins
14
15
Taskpane
Content
Add-in
Commands
Taskpane
Content
Add-in
Commands
Taskpane
Content
Taskpane
Content
Mail Read
Mail Compose
Mail Read
Mail Compose
Add-in
Commands
Modules
Mail Read
Taskpane
Add-in
Commands
Taskpane
Add-in
Commands
Taskpane Taskpane
Content
Taskpane
Add-in
Commands
Content
Taskpane
Add-in
Commands
Content
Taskpane
Content
Taskpane
Content
Taskpane
Add-in
Commands
* Add-in Commands
and Modules only
in Office 2016
Office UI
Fabric
overview
Deep Dive Building Office
Mail Add-ins with the
Microsoft Graph
Office UI Fabric
17
› Responsive, mobile-first, front-end framework for developers that delivers
instant look and feel of Office
› Handles typography, color, icons, animations, responsive grid layouts, and
localization
Authentication
Deep Dive Building Office
Mail Add-ins with the
Microsoft Graph
Authentication library (ADAL/MSAL)
› Token Acquisition
› Token Cache storing access tokens and refresh tokens
› Automatic Token Refresh
› Asynchronous Methods
App authentication with Microsoft Graph
Azure AD v1.0 endpoint Azure AD v2.0 endpoint
Token handling Token per resource Single token
Conditional access device
device policies
Supported Not currently supported
OAuth 2.0 and OpenID
Connect compliant
No Yes
Permissions Static: Specified during app
registration
Dynamic: Request during app
runtime; includes incremental
consent
Account types Work or school Work or school
Personal
Client libraries Active Directory
Authentication (ADAL) SDKs
for most development
platforms
Microsoft Authentication
Library (MSAL) – Preview only
AUTHENTICATION FLOW
Native Application
Azure AD Authorization
Endpoint
Azure AD Token
Endpoint
Microsoft Graph
Return authorization code
Sign-in via browser
Redeem authorization code and acquire access token for Microsoft Graph resource
Return access token and refresh token
Call Microsoft Graph using the access token
Return Http Response
Request authorization code
Microsoft Portals
22
› Classic Azure Portal, https://manage.windowsazure.com
› Azure Portal, https://portal.azure.com
› Microsoft Application Registration portal, https://apps.dev.microsoft.com
› MyApps portal, https://myapps.microsoft.com
Grant access to your profile (Consent)
23
Revoke access (consent)
24
› MyApps portal, https://myapps.microsoft.com
Demo Contact
Synchronizatio
n
Deep Dive Building Office
Mail Add-ins with the
Microsoft Graph
Demo scenario
› Build a Outlook Web Add-in to synchronize AD users with your personal
Contacts
› Steps
› Setup the basics for the Office Web Add-in
› Add Office UI Fabric
› Provide plumbing for authentication
› Support synchronization of Contacts
› Augment Contact with SharePoint User Profile info (Birthday)
27
Ribbon
extensibility, add
the button “Sync”
to the ribbon
Taskpane for
synchronizing AD
users to your
Outlook Contacts
Wrap-up
Deep Dive Building Office
Mail Add-ins with the
Microsoft Graph
Key take-aways
30
› Microsoft Graph is the API to rule them all
› Single repeatable pattern for
› Mail, Contact, Calendar, OneDrive, SharePoint, Insights, …
› Reuse of Access Token for SharePoint CSOM / REST calls
› Office Web Add-ins provide contextual experience
› Office UI Fabric is the official UX design framework for Office Add-ins
Thank you
31
@bramdejager
bram.dejager@delawareconsulting.com
http://bramdejager.wordpress.com

More Related Content

What's hot

Slides m365 file management and collaboration (infinys)
Slides m365 file management and collaboration (infinys)Slides m365 file management and collaboration (infinys)
Slides m365 file management and collaboration (infinys)Agusto Sipahutar
 
Display Microsoft Teams status on your smart light
Display Microsoft Teams status on your smart lightDisplay Microsoft Teams status on your smart light
Display Microsoft Teams status on your smart lightMohamed Ashiq Faleel
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationSharePoint Saturday New Jersey
 
Design and Implement Azure Web Apps
Design and Implement Azure Web AppsDesign and Implement Azure Web Apps
Design and Implement Azure Web AppsAyush Rathi
 
Patterns and Practices in Building Office Add-ins
Patterns and Practices in Building Office Add-insPatterns and Practices in Building Office Add-ins
Patterns and Practices in Building Office Add-insMostafa
 
SharePoint Framework SPS Madrid 2016
SharePoint Framework SPS Madrid 2016SharePoint Framework SPS Madrid 2016
SharePoint Framework SPS Madrid 2016Sonja Madsen
 
PowerApps, the Developer Story: Build an API to Integrate Corporate Data
PowerApps, the Developer Story: Build an API to Integrate Corporate DataPowerApps, the Developer Story: Build an API to Integrate Corporate Data
PowerApps, the Developer Story: Build an API to Integrate Corporate DataBram de Jager
 
Building Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechConBuilding Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechConSPTechCon
 
Getting started with Microsoft Flow
Getting started with Microsoft FlowGetting started with Microsoft Flow
Getting started with Microsoft FlowJayanthi P
 
PnP in building office add ins - public
PnP in building office add ins - publicPnP in building office add ins - public
PnP in building office add ins - publicMostafa
 
Share point development services case study
Share point development services case studyShare point development services case study
Share point development services case studyNandita Nityanandam
 
Connected field service WhatsApp integration with Microsoft 365 Platform
Connected field service WhatsApp integration with Microsoft 365 PlatformConnected field service WhatsApp integration with Microsoft 365 Platform
Connected field service WhatsApp integration with Microsoft 365 PlatformMohamed Ashiq Faleel
 
Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'samarcot
 
PowerApps, the Developer Story: Build an API to Integrate Corporate Data
PowerApps, the Developer Story: Build an API to Integrate Corporate DataPowerApps, the Developer Story: Build an API to Integrate Corporate Data
PowerApps, the Developer Story: Build an API to Integrate Corporate DataBram de Jager
 
Microsoft Teams as a Development Platform
Microsoft Teams as a Development PlatformMicrosoft Teams as a Development Platform
Microsoft Teams as a Development PlatformDavid Schneider
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...BlueMetalInc
 
Power Platform Architecture Corrections
Power Platform Architecture CorrectionsPower Platform Architecture Corrections
Power Platform Architecture CorrectionsYusuke Ohira
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overviewElie Kash
 
What's in SharePoint land 2016 for the end user
What's in SharePoint land 2016 for the end userWhat's in SharePoint land 2016 for the end user
What's in SharePoint land 2016 for the end userSPC Adriatics
 

What's hot (20)

Slides m365 file management and collaboration (infinys)
Slides m365 file management and collaboration (infinys)Slides m365 file management and collaboration (infinys)
Slides m365 file management and collaboration (infinys)
 
Display Microsoft Teams status on your smart light
Display Microsoft Teams status on your smart lightDisplay Microsoft Teams status on your smart light
Display Microsoft Teams status on your smart light
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous Integration
 
Design and Implement Azure Web Apps
Design and Implement Azure Web AppsDesign and Implement Azure Web Apps
Design and Implement Azure Web Apps
 
Patterns and Practices in Building Office Add-ins
Patterns and Practices in Building Office Add-insPatterns and Practices in Building Office Add-ins
Patterns and Practices in Building Office Add-ins
 
SharePoint Framework SPS Madrid 2016
SharePoint Framework SPS Madrid 2016SharePoint Framework SPS Madrid 2016
SharePoint Framework SPS Madrid 2016
 
PowerApps, the Developer Story: Build an API to Integrate Corporate Data
PowerApps, the Developer Story: Build an API to Integrate Corporate DataPowerApps, the Developer Story: Build an API to Integrate Corporate Data
PowerApps, the Developer Story: Build an API to Integrate Corporate Data
 
Building Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechConBuilding Apps for SharePoint 2013 by Andrew Connell - SPTechCon
Building Apps for SharePoint 2013 by Andrew Connell - SPTechCon
 
Getting started with Microsoft Flow
Getting started with Microsoft FlowGetting started with Microsoft Flow
Getting started with Microsoft Flow
 
PnP in building office add ins - public
PnP in building office add ins - publicPnP in building office add ins - public
PnP in building office add ins - public
 
Share point development services case study
Share point development services case studyShare point development services case study
Share point development services case study
 
Connected field service WhatsApp integration with Microsoft 365 Platform
Connected field service WhatsApp integration with Microsoft 365 PlatformConnected field service WhatsApp integration with Microsoft 365 Platform
Connected field service WhatsApp integration with Microsoft 365 Platform
 
Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'
 
PowerApps, the Developer Story: Build an API to Integrate Corporate Data
PowerApps, the Developer Story: Build an API to Integrate Corporate DataPowerApps, the Developer Story: Build an API to Integrate Corporate Data
PowerApps, the Developer Story: Build an API to Integrate Corporate Data
 
Microsoft Teams as a Development Platform
Microsoft Teams as a Development PlatformMicrosoft Teams as a Development Platform
Microsoft Teams as a Development Platform
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
 
Power Platform Architecture Corrections
Power Platform Architecture CorrectionsPower Platform Architecture Corrections
Power Platform Architecture Corrections
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overview
 
What's in SharePoint land 2016 for the end user
What's in SharePoint land 2016 for the end userWhat's in SharePoint land 2016 for the end user
What's in SharePoint land 2016 for the end user
 
Power Apps Connector
Power Apps ConnectorPower Apps Connector
Power Apps Connector
 

Viewers also liked

RedLink Presentation
RedLink PresentationRedLink Presentation
RedLink PresentationAtypon
 
Anexo i zonas de escolarización ei pri 2016-17
Anexo i zonas de escolarización ei pri 2016-17Anexo i zonas de escolarización ei pri 2016-17
Anexo i zonas de escolarización ei pri 2016-17CEIP "SAN ANTONIO"
 
Enhancing curriculum and instruction with the iPad
Enhancing curriculum and instruction with the iPadEnhancing curriculum and instruction with the iPad
Enhancing curriculum and instruction with the iPadjackiedjen
 
Google Mobile, cómo entender a los usuarios mobile.
Google Mobile, cómo entender a los usuarios mobile.Google Mobile, cómo entender a los usuarios mobile.
Google Mobile, cómo entender a los usuarios mobile.Marketing Online
 
Asociación Comercio Paiporta - Velada del Comercio 4 de mayo de 2012
Asociación Comercio Paiporta - Velada del Comercio 4 de mayo de 2012Asociación Comercio Paiporta - Velada del Comercio 4 de mayo de 2012
Asociación Comercio Paiporta - Velada del Comercio 4 de mayo de 2012PymeAssistant Outsourcing
 
Ballant Sota La Pluja
Ballant Sota La PlujaBallant Sota La Pluja
Ballant Sota La Plujajyago70
 
How to setup a home flex band gym
How to setup a home flex band gymHow to setup a home flex band gym
How to setup a home flex band gymWalid Wdmuka
 
ALT FOR DAMERNE November 2015word
ALT FOR DAMERNE November 2015wordALT FOR DAMERNE November 2015word
ALT FOR DAMERNE November 2015wordNathalie Dahl
 
Newletter da Esposende Ambiente - Nós por cá, Ed 2
Newletter da Esposende Ambiente - Nós por cá, Ed 2Newletter da Esposende Ambiente - Nós por cá, Ed 2
Newletter da Esposende Ambiente - Nós por cá, Ed 2Angelo de Sousa
 
The Problem with eMail
The Problem with eMailThe Problem with eMail
The Problem with eMailAndy Porter
 
Energia limpia
Energia limpiaEnergia limpia
Energia limpiaoscalpa
 
Institute for Advanced Sustainability Studies IASS in Potsdam The European So...
Institute for Advanced Sustainability Studies IASS in Potsdam The European So...Institute for Advanced Sustainability Studies IASS in Potsdam The European So...
Institute for Advanced Sustainability Studies IASS in Potsdam The European So...FAO
 

Viewers also liked (20)

RedLink Presentation
RedLink PresentationRedLink Presentation
RedLink Presentation
 
Adelante, Realízate libre en tu camino
Adelante, Realízate libre en tu caminoAdelante, Realízate libre en tu camino
Adelante, Realízate libre en tu camino
 
Envase y embalaje pymes españolas exportadoras
Envase y embalaje pymes españolas exportadorasEnvase y embalaje pymes españolas exportadoras
Envase y embalaje pymes españolas exportadoras
 
Mal de escuela
Mal de escuelaMal de escuela
Mal de escuela
 
Anexo i zonas de escolarización ei pri 2016-17
Anexo i zonas de escolarización ei pri 2016-17Anexo i zonas de escolarización ei pri 2016-17
Anexo i zonas de escolarización ei pri 2016-17
 
Enhancing curriculum and instruction with the iPad
Enhancing curriculum and instruction with the iPadEnhancing curriculum and instruction with the iPad
Enhancing curriculum and instruction with the iPad
 
JOYDIVISION Love-Guide
JOYDIVISION Love-GuideJOYDIVISION Love-Guide
JOYDIVISION Love-Guide
 
Email22
Email22Email22
Email22
 
Google Mobile, cómo entender a los usuarios mobile.
Google Mobile, cómo entender a los usuarios mobile.Google Mobile, cómo entender a los usuarios mobile.
Google Mobile, cómo entender a los usuarios mobile.
 
Forever Living - Negocio
Forever Living - NegocioForever Living - Negocio
Forever Living - Negocio
 
Asociación Comercio Paiporta - Velada del Comercio 4 de mayo de 2012
Asociación Comercio Paiporta - Velada del Comercio 4 de mayo de 2012Asociación Comercio Paiporta - Velada del Comercio 4 de mayo de 2012
Asociación Comercio Paiporta - Velada del Comercio 4 de mayo de 2012
 
Ballant Sota La Pluja
Ballant Sota La PlujaBallant Sota La Pluja
Ballant Sota La Pluja
 
How to setup a home flex band gym
How to setup a home flex band gymHow to setup a home flex band gym
How to setup a home flex band gym
 
ALT FOR DAMERNE November 2015word
ALT FOR DAMERNE November 2015wordALT FOR DAMERNE November 2015word
ALT FOR DAMERNE November 2015word
 
Proyectos afj2014 procesos
Proyectos afj2014 procesosProyectos afj2014 procesos
Proyectos afj2014 procesos
 
Newletter da Esposende Ambiente - Nós por cá, Ed 2
Newletter da Esposende Ambiente - Nós por cá, Ed 2Newletter da Esposende Ambiente - Nós por cá, Ed 2
Newletter da Esposende Ambiente - Nós por cá, Ed 2
 
The Problem with eMail
The Problem with eMailThe Problem with eMail
The Problem with eMail
 
Energia limpia
Energia limpiaEnergia limpia
Energia limpia
 
Institute for Advanced Sustainability Studies IASS in Potsdam The European So...
Institute for Advanced Sustainability Studies IASS in Potsdam The European So...Institute for Advanced Sustainability Studies IASS in Potsdam The European So...
Institute for Advanced Sustainability Studies IASS in Potsdam The European So...
 
SALTO CONDICIONAL
SALTO CONDICIONALSALTO CONDICIONAL
SALTO CONDICIONAL
 

Similar to Deep Dive Building Office Mail Add-ins with the Microsoft Graph

Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingSPC Adriatics
 
Microsoft Teams - A developers perspective
Microsoft Teams - A developers perspectiveMicrosoft Teams - A developers perspective
Microsoft Teams - A developers perspectiveThomas Gölles
 
Data Centric Composites and mashups In SharePoint 2010
Data Centric Composites and mashups In SharePoint 2010Data Centric Composites and mashups In SharePoint 2010
Data Centric Composites and mashups In SharePoint 2010Ayman El-Hattab
 
Office 365 for Developers
Office 365 for DevelopersOffice 365 for Developers
Office 365 for DevelopersWes Yanaga
 
Commit University - Microsoft Azure
Commit University - Microsoft AzureCommit University - Microsoft Azure
Commit University - Microsoft AzureCommit University
 
SharePoint 2010
SharePoint 2010SharePoint 2010
SharePoint 2010nplowman
 
Introduction to the Microsoft identity platform for developers
Introduction to the Microsoft identity platform for developersIntroduction to the Microsoft identity platform for developers
Introduction to the Microsoft identity platform for developersChristos Matskas
 
Intelligent automation with Microsoft Power Automate
Intelligent automation with Microsoft Power AutomateIntelligent automation with Microsoft Power Automate
Intelligent automation with Microsoft Power AutomateDaniel Laskewitz
 
Sharepoint 2010 composites
Sharepoint 2010   compositesSharepoint 2010   composites
Sharepoint 2010 compositesKashif Akram
 
APP IN A DAY Copenhagen May 13th
APP IN A DAY Copenhagen May 13th APP IN A DAY Copenhagen May 13th
APP IN A DAY Copenhagen May 13th AlonEkelund
 
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...Marius Constantinescu [MVP]
 
Innovation morning power platform
Innovation morning power platformInnovation morning power platform
Innovation morning power platformClaudia Angelelli
 
Getting started with office 365 add ins development 3 may 2018 - v2
Getting started with office 365 add ins development 3 may 2018 - v2Getting started with office 365 add ins development 3 may 2018 - v2
Getting started with office 365 add ins development 3 may 2018 - v2Nilesh Shah
 
Microsoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AIMicrosoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AIThomas Gölles
 
04 power apps-platform-boonthawee
04 power apps-platform-boonthawee04 power apps-platform-boonthawee
04 power apps-platform-boonthaweeKumton Suttiraksiri
 
Office Add-ins developer community call-January 2020
Office Add-ins developer community call-January 2020Office Add-ins developer community call-January 2020
Office Add-ins developer community call-January 2020Microsoft 365 Developer
 
Developing business applications via power platform build2019
Developing business applications via power platform build2019Developing business applications via power platform build2019
Developing business applications via power platform build2019Dipti Chhatrapati
 
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...Vincent Biret
 

Similar to Deep Dive Building Office Mail Add-ins with the Microsoft Graph (20)

Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thing
 
Microsoft Teams - A developers perspective
Microsoft Teams - A developers perspectiveMicrosoft Teams - A developers perspective
Microsoft Teams - A developers perspective
 
Data Centric Composites and mashups In SharePoint 2010
Data Centric Composites and mashups In SharePoint 2010Data Centric Composites and mashups In SharePoint 2010
Data Centric Composites and mashups In SharePoint 2010
 
Office 365 for Developers
Office 365 for DevelopersOffice 365 for Developers
Office 365 for Developers
 
Commit University - Microsoft Azure
Commit University - Microsoft AzureCommit University - Microsoft Azure
Commit University - Microsoft Azure
 
SharePoint 2010
SharePoint 2010SharePoint 2010
SharePoint 2010
 
Introduction to the Microsoft identity platform for developers
Introduction to the Microsoft identity platform for developersIntroduction to the Microsoft identity platform for developers
Introduction to the Microsoft identity platform for developers
 
Intelligent automation with Microsoft Power Automate
Intelligent automation with Microsoft Power AutomateIntelligent automation with Microsoft Power Automate
Intelligent automation with Microsoft Power Automate
 
Developing apps for share point 2013
Developing apps for share point 2013Developing apps for share point 2013
Developing apps for share point 2013
 
Sharepoint 2010 composites
Sharepoint 2010   compositesSharepoint 2010   composites
Sharepoint 2010 composites
 
APP IN A DAY Copenhagen May 13th
APP IN A DAY Copenhagen May 13th APP IN A DAY Copenhagen May 13th
APP IN A DAY Copenhagen May 13th
 
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...
 
Innovation morning power platform
Innovation morning power platformInnovation morning power platform
Innovation morning power platform
 
Getting started with office 365 add ins development 3 may 2018 - v2
Getting started with office 365 add ins development 3 may 2018 - v2Getting started with office 365 add ins development 3 may 2018 - v2
Getting started with office 365 add ins development 3 may 2018 - v2
 
Meec 2010 SharePoint 2010
Meec 2010 SharePoint 2010Meec 2010 SharePoint 2010
Meec 2010 SharePoint 2010
 
Microsoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AIMicrosoft Teams Development - Conversational AI
Microsoft Teams Development - Conversational AI
 
04 power apps-platform-boonthawee
04 power apps-platform-boonthawee04 power apps-platform-boonthawee
04 power apps-platform-boonthawee
 
Office Add-ins developer community call-January 2020
Office Add-ins developer community call-January 2020Office Add-ins developer community call-January 2020
Office Add-ins developer community call-January 2020
 
Developing business applications via power platform build2019
Developing business applications via power platform build2019Developing business applications via power platform build2019
Developing business applications via power platform build2019
 
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
 

Recently uploaded

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 

Recently uploaded (20)

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 

Deep Dive Building Office Mail Add-ins with the Microsoft Graph

  • 1. Deep Dive Building Office Mail Add-ins with the Microsoft Graph Bram de Jager Lead Architect, Delaware Consulting, Netherlands
  • 2. Agenda › Microsoft Graph overview › Office Add-ins overview › Office Fabric UI overview › Authentication › Demo Contact Synchronization › Wrap-up
  • 3. Microsoft Graph overview Deep Dive Building Office Mail Add-ins with the Microsoft Graph
  • 4. WHAT CAN I BUILD? Office Platform ADD-INS AND WEB PARTS: Make your solution a native part of the modern Office WEB AND DEVICE APPS: Build smarter apps by connecting to Office services VOICE, VIDEO, CONNECTORS, AND BOTS: Create the next generation of productivity solutions
  • 5. What is Microsoft Graph? › Single API for › Accessing data › /me, /users, /groups, /messages, /drive, …. › Traversing data › /drive/items/<id>/lastmodifiedByUser › Accessing insights › /insights/trending › Work/School and Personal https://graph.microsoft.com/
  • 6. State of the world before Microsoft Graph › Many different APIs to access data › Separate auth stacks for work and personal Work and school Personal
  • 7. Today’s world with Microsoft Graph Microsoft Graph (https://graph.microsoft.com/) Work and school Personal …
  • 8. Diverse API styles and endpoints https://graph.windows.net/contoso.com/users https://graph.windows.net/contoso.com/groups https://apis.live.net/v5.0/me https://contoso.sharepoint.com/_api/SP.UserProfiles.PeopleManager/GetMyProperties https://graph.microsoft.com/v1.0/me/photo https://outlook.office.com/api/v2.0/me/Messages https://outlook.office.com/api/v2.0/me/Events https://contoso-my.sharepoint.com/personal /yina_contoso_com/_api/v2.0/drive https://contoso.sharepoint.com/sites /designCouncil/_api/v2./drive https://api.onedrive.com/v1.0/drive https://contoso.sharepoint.com/_api/search/query?Querytext='*'&Prop erties='GraphQuery:actor(ME,action:1020,or(action:1020,action:1003 ,action:1001,action:1024,action:1005,action:1037,action:1039,action :1036)'&SelectProperties='Docid,Title
  • 9. Operation Service endpoint GET my profile https://graph.microsoft.com/v1.0/me GET my files https://graph.microsoft.com/v1.0/me/drive/root/children GET my photo https://graph.microsoft.com/v1.0/me/photo/$value GET my mail https://graph.microsoft.com/v1.0/me/messages GET my calendar https://graph.microsoft.com/v1.0/me/calendar GET my manager https://graph.microsoft.com/v1.0/me/manager GET last user to modify file foo.txt https://graph.microsoft.com/v1.0/me/drive/root/children/foo.txt/lastModifiedByUser GET users in my organization https://graph.microsoft.com/v1.0/users GET group conversations https://graph.microsoft.com/v1.0/groups/<id>/conversations GET people related to me https://graph.microsoft.com/beta/me/people GET my tasks https://graph.microsoft.com/beta/me/tasks GET my notes https://graph.microsoft.com/beta/me/notes/notebooks GET files trending around me https://graph.microsoft.com/beta/me/insights/trending Unified API style – single endpoint https://graph.microsoft.com
  • 10. Office Add- ins overview Deep Dive Building Office Mail Add-ins with the Microsoft Graph
  • 11. Introducing the add-in model › Office add-ins are the means for enabling contextual experiences › Office add-ins boost productivity by integrating services into Office client › Office add-ins do not “live” on the Office client › Custom code executes in the client, cloud, or on-premises › Acquire add-ins via centralized location (store) › Add-in catalog (SharePoint or FileShare) › Public store (via submission process)
  • 12. Write once, run everywhere
  • 14. 15 Taskpane Content Add-in Commands Taskpane Content Add-in Commands Taskpane Content Taskpane Content Mail Read Mail Compose Mail Read Mail Compose Add-in Commands Modules Mail Read Taskpane Add-in Commands Taskpane Add-in Commands Taskpane Taskpane Content Taskpane Add-in Commands Content Taskpane Add-in Commands Content Taskpane Content Taskpane Content Taskpane Add-in Commands * Add-in Commands and Modules only in Office 2016
  • 15. Office UI Fabric overview Deep Dive Building Office Mail Add-ins with the Microsoft Graph
  • 16. Office UI Fabric 17 › Responsive, mobile-first, front-end framework for developers that delivers instant look and feel of Office › Handles typography, color, icons, animations, responsive grid layouts, and localization
  • 17. Authentication Deep Dive Building Office Mail Add-ins with the Microsoft Graph
  • 18. Authentication library (ADAL/MSAL) › Token Acquisition › Token Cache storing access tokens and refresh tokens › Automatic Token Refresh › Asynchronous Methods
  • 19. App authentication with Microsoft Graph Azure AD v1.0 endpoint Azure AD v2.0 endpoint Token handling Token per resource Single token Conditional access device device policies Supported Not currently supported OAuth 2.0 and OpenID Connect compliant No Yes Permissions Static: Specified during app registration Dynamic: Request during app runtime; includes incremental consent Account types Work or school Work or school Personal Client libraries Active Directory Authentication (ADAL) SDKs for most development platforms Microsoft Authentication Library (MSAL) – Preview only
  • 20. AUTHENTICATION FLOW Native Application Azure AD Authorization Endpoint Azure AD Token Endpoint Microsoft Graph Return authorization code Sign-in via browser Redeem authorization code and acquire access token for Microsoft Graph resource Return access token and refresh token Call Microsoft Graph using the access token Return Http Response Request authorization code
  • 21. Microsoft Portals 22 › Classic Azure Portal, https://manage.windowsazure.com › Azure Portal, https://portal.azure.com › Microsoft Application Registration portal, https://apps.dev.microsoft.com › MyApps portal, https://myapps.microsoft.com
  • 22. Grant access to your profile (Consent) 23
  • 23. Revoke access (consent) 24 › MyApps portal, https://myapps.microsoft.com
  • 24. Demo Contact Synchronizatio n Deep Dive Building Office Mail Add-ins with the Microsoft Graph
  • 25. Demo scenario › Build a Outlook Web Add-in to synchronize AD users with your personal Contacts › Steps › Setup the basics for the Office Web Add-in › Add Office UI Fabric › Provide plumbing for authentication › Support synchronization of Contacts › Augment Contact with SharePoint User Profile info (Birthday)
  • 26. 27 Ribbon extensibility, add the button “Sync” to the ribbon Taskpane for synchronizing AD users to your Outlook Contacts
  • 27. Wrap-up Deep Dive Building Office Mail Add-ins with the Microsoft Graph
  • 28. Key take-aways 30 › Microsoft Graph is the API to rule them all › Single repeatable pattern for › Mail, Contact, Calendar, OneDrive, SharePoint, Insights, … › Reuse of Access Token for SharePoint CSOM / REST calls › Office Web Add-ins provide contextual experience › Office UI Fabric is the official UX design framework for Office Add-ins

Editor's Notes

  1. Source: https://dev.office.com/add-in-availability Modules in Outlook 2016: https://dev.office.com/docs/add-ins/outlook/extension-module-outlook-add-ins?product=outlook
  2. Authentication to Office 365 APIs using resource id Authorization Code Grant Flow The client application starts the flow by redirecting the user agent to the Azure AD authorization endpoint. The user authenticates and consents, if consent is required. The Azure AD authorization endpoint redirects the user agent back to the client application with an authorization code. The user agent returns authorization code to the client application’s redirect URI. The client application requests an access token from the Azure AD token issuance endpoint. It presents the authorization code to prove that the user has consented. The Azure AD token issuance endpoint returns an access token and a refresh token. The refresh token can be used to request additional access tokens. The client application uses the access token to authenticate to the Web API. After authenticating the client application, the web API returns the requested data. https://msdn.microsoft.com/en-us/library/azure/dn645542.aspx
  3. https://graph.microsoft.io/en-us/docs/authorization/auth_register_app_v2 Should I use the v2.0 endpoint? » https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-limitations