microsoft graph with asp.net mvc

33
SharePoint Saturday Belgium 2017 • October 21 • Brussels Track: DEVELOPER| Level: 300 Microsoft Graph with ASP.NET MVC Donald Hessing (MCM)

Upload: biwug

Post on 22-Jan-2018

74 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels Track DEVELOPER| Level 300

Microsoft Graph with ASPNET MVC

Donald Hessing (MCM)

Pla

tin

um

Go

ldSi

lver

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Who am I

bull Donald Hessing

bull Microsoft Lead Architect ndash Digital Customer Experience ndash Capgemini Netherlands

bull Microsoft Certified Master(MCM) for SharePoint

bull Speaker Chair for ESPC17

bull dhessing

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Agenda

bull Short Introduction to the Microsoft Graph

bull Microsoft Graph SDK

bull Extensions (Open and Schema)

bull Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Before Microsoft Graph

bull Each service has its own set of APIs characteristics data model and authentication

bull Separate authentication stack for work and personal accounts

bull High learning curve - not always compatible with non Microsoft stack

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Single endpoint for Office 365 Services

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Unified API Style

Operation Service Endpoint

GET my profile httpsgraphmicrosoftcomv10me

GET my files httpsgraphmicrosoftcomv10driverootchildren

GET my photo httpsgraphmicrosoftcomv10photo$value

GET my mail httpsgraphmicrosoftcomv10memessages

GET my calendar httpsgraphmicrosoftcomv10mecalendar

GET my manager httpsgraphmicrosoftcomv10memanager

GET group conversations httpsgraphmicrosoftcomv10groupsltidgtconversations

GET files trending around me httpsgraphmicrosoftcomv10meinsightstrending

httpsgraphmicrosoftcom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

What has become GA over the last year

bull Azure Active Directory

bull Outlook mail Calendar and Contacts

bull Office 365 Groups and Conversations

bull OneDrive Drives and Files

bull WebHooks for Outlook Groups User OneDrive data

bull SharePoint amp LiveID profiles

bull Office 365 Reports

bull Extensions

bull Excel API

bull FindMeetingTime

bull Planner

bull Extensions

bull Delta Queries

bull Sites (SharePoint)

httpsdevelopermicrosoftcomen-usgraphdocsconceptschangelog

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication

ADAL v10bull Authentication library to deal with Azure

Active Directory authentication flow

bull Support for Work and School accounts via Azure Active Directory

bull Full set of SDKs available

bull Supports Office 365 Services

bull User gives consent for all permissions at first start

MSAL v20bull Unified authentication library to deal with

authentication across the different identity platforms provided by Microsoft

bull Support for Work School and Personal accounts ndash No Azure requirement

bull User gives consent when the applications needs it

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Revoke User Consent

Native Application

bull Consent is part of the Refresh Token and typically stored on the device

bull Revoke Consent typically means uninstalling the application or clear the TokenCache

Web Server Applications

bull Consent is stored in Azure Active Directory and not part of the Refresh Token

bull User can Revoke Consent at httpsaccountactivedirectorywindowsazurecom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication flow for Microsoft Graph

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 2: Microsoft Graph with ASP.NET MVC

Pla

tin

um

Go

ldSi

lver

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Who am I

bull Donald Hessing

bull Microsoft Lead Architect ndash Digital Customer Experience ndash Capgemini Netherlands

bull Microsoft Certified Master(MCM) for SharePoint

bull Speaker Chair for ESPC17

bull dhessing

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Agenda

bull Short Introduction to the Microsoft Graph

bull Microsoft Graph SDK

bull Extensions (Open and Schema)

bull Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Before Microsoft Graph

bull Each service has its own set of APIs characteristics data model and authentication

bull Separate authentication stack for work and personal accounts

bull High learning curve - not always compatible with non Microsoft stack

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Single endpoint for Office 365 Services

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Unified API Style

Operation Service Endpoint

GET my profile httpsgraphmicrosoftcomv10me

GET my files httpsgraphmicrosoftcomv10driverootchildren

GET my photo httpsgraphmicrosoftcomv10photo$value

GET my mail httpsgraphmicrosoftcomv10memessages

GET my calendar httpsgraphmicrosoftcomv10mecalendar

GET my manager httpsgraphmicrosoftcomv10memanager

GET group conversations httpsgraphmicrosoftcomv10groupsltidgtconversations

GET files trending around me httpsgraphmicrosoftcomv10meinsightstrending

httpsgraphmicrosoftcom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

What has become GA over the last year

bull Azure Active Directory

bull Outlook mail Calendar and Contacts

bull Office 365 Groups and Conversations

bull OneDrive Drives and Files

bull WebHooks for Outlook Groups User OneDrive data

bull SharePoint amp LiveID profiles

bull Office 365 Reports

bull Extensions

bull Excel API

bull FindMeetingTime

bull Planner

bull Extensions

bull Delta Queries

bull Sites (SharePoint)

httpsdevelopermicrosoftcomen-usgraphdocsconceptschangelog

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication

ADAL v10bull Authentication library to deal with Azure

Active Directory authentication flow

bull Support for Work and School accounts via Azure Active Directory

bull Full set of SDKs available

bull Supports Office 365 Services

bull User gives consent for all permissions at first start

MSAL v20bull Unified authentication library to deal with

authentication across the different identity platforms provided by Microsoft

bull Support for Work School and Personal accounts ndash No Azure requirement

bull User gives consent when the applications needs it

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Revoke User Consent

Native Application

bull Consent is part of the Refresh Token and typically stored on the device

bull Revoke Consent typically means uninstalling the application or clear the TokenCache

Web Server Applications

bull Consent is stored in Azure Active Directory and not part of the Refresh Token

bull User can Revoke Consent at httpsaccountactivedirectorywindowsazurecom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication flow for Microsoft Graph

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 3: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Who am I

bull Donald Hessing

bull Microsoft Lead Architect ndash Digital Customer Experience ndash Capgemini Netherlands

bull Microsoft Certified Master(MCM) for SharePoint

bull Speaker Chair for ESPC17

bull dhessing

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Agenda

bull Short Introduction to the Microsoft Graph

bull Microsoft Graph SDK

bull Extensions (Open and Schema)

bull Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Before Microsoft Graph

bull Each service has its own set of APIs characteristics data model and authentication

bull Separate authentication stack for work and personal accounts

bull High learning curve - not always compatible with non Microsoft stack

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Single endpoint for Office 365 Services

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Unified API Style

Operation Service Endpoint

GET my profile httpsgraphmicrosoftcomv10me

GET my files httpsgraphmicrosoftcomv10driverootchildren

GET my photo httpsgraphmicrosoftcomv10photo$value

GET my mail httpsgraphmicrosoftcomv10memessages

GET my calendar httpsgraphmicrosoftcomv10mecalendar

GET my manager httpsgraphmicrosoftcomv10memanager

GET group conversations httpsgraphmicrosoftcomv10groupsltidgtconversations

GET files trending around me httpsgraphmicrosoftcomv10meinsightstrending

httpsgraphmicrosoftcom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

What has become GA over the last year

bull Azure Active Directory

bull Outlook mail Calendar and Contacts

bull Office 365 Groups and Conversations

bull OneDrive Drives and Files

bull WebHooks for Outlook Groups User OneDrive data

bull SharePoint amp LiveID profiles

bull Office 365 Reports

bull Extensions

bull Excel API

bull FindMeetingTime

bull Planner

bull Extensions

bull Delta Queries

bull Sites (SharePoint)

httpsdevelopermicrosoftcomen-usgraphdocsconceptschangelog

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication

ADAL v10bull Authentication library to deal with Azure

Active Directory authentication flow

bull Support for Work and School accounts via Azure Active Directory

bull Full set of SDKs available

bull Supports Office 365 Services

bull User gives consent for all permissions at first start

MSAL v20bull Unified authentication library to deal with

authentication across the different identity platforms provided by Microsoft

bull Support for Work School and Personal accounts ndash No Azure requirement

bull User gives consent when the applications needs it

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Revoke User Consent

Native Application

bull Consent is part of the Refresh Token and typically stored on the device

bull Revoke Consent typically means uninstalling the application or clear the TokenCache

Web Server Applications

bull Consent is stored in Azure Active Directory and not part of the Refresh Token

bull User can Revoke Consent at httpsaccountactivedirectorywindowsazurecom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication flow for Microsoft Graph

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 4: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Agenda

bull Short Introduction to the Microsoft Graph

bull Microsoft Graph SDK

bull Extensions (Open and Schema)

bull Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Before Microsoft Graph

bull Each service has its own set of APIs characteristics data model and authentication

bull Separate authentication stack for work and personal accounts

bull High learning curve - not always compatible with non Microsoft stack

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Single endpoint for Office 365 Services

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Unified API Style

Operation Service Endpoint

GET my profile httpsgraphmicrosoftcomv10me

GET my files httpsgraphmicrosoftcomv10driverootchildren

GET my photo httpsgraphmicrosoftcomv10photo$value

GET my mail httpsgraphmicrosoftcomv10memessages

GET my calendar httpsgraphmicrosoftcomv10mecalendar

GET my manager httpsgraphmicrosoftcomv10memanager

GET group conversations httpsgraphmicrosoftcomv10groupsltidgtconversations

GET files trending around me httpsgraphmicrosoftcomv10meinsightstrending

httpsgraphmicrosoftcom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

What has become GA over the last year

bull Azure Active Directory

bull Outlook mail Calendar and Contacts

bull Office 365 Groups and Conversations

bull OneDrive Drives and Files

bull WebHooks for Outlook Groups User OneDrive data

bull SharePoint amp LiveID profiles

bull Office 365 Reports

bull Extensions

bull Excel API

bull FindMeetingTime

bull Planner

bull Extensions

bull Delta Queries

bull Sites (SharePoint)

httpsdevelopermicrosoftcomen-usgraphdocsconceptschangelog

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication

ADAL v10bull Authentication library to deal with Azure

Active Directory authentication flow

bull Support for Work and School accounts via Azure Active Directory

bull Full set of SDKs available

bull Supports Office 365 Services

bull User gives consent for all permissions at first start

MSAL v20bull Unified authentication library to deal with

authentication across the different identity platforms provided by Microsoft

bull Support for Work School and Personal accounts ndash No Azure requirement

bull User gives consent when the applications needs it

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Revoke User Consent

Native Application

bull Consent is part of the Refresh Token and typically stored on the device

bull Revoke Consent typically means uninstalling the application or clear the TokenCache

Web Server Applications

bull Consent is stored in Azure Active Directory and not part of the Refresh Token

bull User can Revoke Consent at httpsaccountactivedirectorywindowsazurecom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication flow for Microsoft Graph

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 5: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Before Microsoft Graph

bull Each service has its own set of APIs characteristics data model and authentication

bull Separate authentication stack for work and personal accounts

bull High learning curve - not always compatible with non Microsoft stack

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Single endpoint for Office 365 Services

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Unified API Style

Operation Service Endpoint

GET my profile httpsgraphmicrosoftcomv10me

GET my files httpsgraphmicrosoftcomv10driverootchildren

GET my photo httpsgraphmicrosoftcomv10photo$value

GET my mail httpsgraphmicrosoftcomv10memessages

GET my calendar httpsgraphmicrosoftcomv10mecalendar

GET my manager httpsgraphmicrosoftcomv10memanager

GET group conversations httpsgraphmicrosoftcomv10groupsltidgtconversations

GET files trending around me httpsgraphmicrosoftcomv10meinsightstrending

httpsgraphmicrosoftcom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

What has become GA over the last year

bull Azure Active Directory

bull Outlook mail Calendar and Contacts

bull Office 365 Groups and Conversations

bull OneDrive Drives and Files

bull WebHooks for Outlook Groups User OneDrive data

bull SharePoint amp LiveID profiles

bull Office 365 Reports

bull Extensions

bull Excel API

bull FindMeetingTime

bull Planner

bull Extensions

bull Delta Queries

bull Sites (SharePoint)

httpsdevelopermicrosoftcomen-usgraphdocsconceptschangelog

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication

ADAL v10bull Authentication library to deal with Azure

Active Directory authentication flow

bull Support for Work and School accounts via Azure Active Directory

bull Full set of SDKs available

bull Supports Office 365 Services

bull User gives consent for all permissions at first start

MSAL v20bull Unified authentication library to deal with

authentication across the different identity platforms provided by Microsoft

bull Support for Work School and Personal accounts ndash No Azure requirement

bull User gives consent when the applications needs it

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Revoke User Consent

Native Application

bull Consent is part of the Refresh Token and typically stored on the device

bull Revoke Consent typically means uninstalling the application or clear the TokenCache

Web Server Applications

bull Consent is stored in Azure Active Directory and not part of the Refresh Token

bull User can Revoke Consent at httpsaccountactivedirectorywindowsazurecom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication flow for Microsoft Graph

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 6: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Single endpoint for Office 365 Services

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Unified API Style

Operation Service Endpoint

GET my profile httpsgraphmicrosoftcomv10me

GET my files httpsgraphmicrosoftcomv10driverootchildren

GET my photo httpsgraphmicrosoftcomv10photo$value

GET my mail httpsgraphmicrosoftcomv10memessages

GET my calendar httpsgraphmicrosoftcomv10mecalendar

GET my manager httpsgraphmicrosoftcomv10memanager

GET group conversations httpsgraphmicrosoftcomv10groupsltidgtconversations

GET files trending around me httpsgraphmicrosoftcomv10meinsightstrending

httpsgraphmicrosoftcom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

What has become GA over the last year

bull Azure Active Directory

bull Outlook mail Calendar and Contacts

bull Office 365 Groups and Conversations

bull OneDrive Drives and Files

bull WebHooks for Outlook Groups User OneDrive data

bull SharePoint amp LiveID profiles

bull Office 365 Reports

bull Extensions

bull Excel API

bull FindMeetingTime

bull Planner

bull Extensions

bull Delta Queries

bull Sites (SharePoint)

httpsdevelopermicrosoftcomen-usgraphdocsconceptschangelog

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication

ADAL v10bull Authentication library to deal with Azure

Active Directory authentication flow

bull Support for Work and School accounts via Azure Active Directory

bull Full set of SDKs available

bull Supports Office 365 Services

bull User gives consent for all permissions at first start

MSAL v20bull Unified authentication library to deal with

authentication across the different identity platforms provided by Microsoft

bull Support for Work School and Personal accounts ndash No Azure requirement

bull User gives consent when the applications needs it

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Revoke User Consent

Native Application

bull Consent is part of the Refresh Token and typically stored on the device

bull Revoke Consent typically means uninstalling the application or clear the TokenCache

Web Server Applications

bull Consent is stored in Azure Active Directory and not part of the Refresh Token

bull User can Revoke Consent at httpsaccountactivedirectorywindowsazurecom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication flow for Microsoft Graph

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 7: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Unified API Style

Operation Service Endpoint

GET my profile httpsgraphmicrosoftcomv10me

GET my files httpsgraphmicrosoftcomv10driverootchildren

GET my photo httpsgraphmicrosoftcomv10photo$value

GET my mail httpsgraphmicrosoftcomv10memessages

GET my calendar httpsgraphmicrosoftcomv10mecalendar

GET my manager httpsgraphmicrosoftcomv10memanager

GET group conversations httpsgraphmicrosoftcomv10groupsltidgtconversations

GET files trending around me httpsgraphmicrosoftcomv10meinsightstrending

httpsgraphmicrosoftcom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

What has become GA over the last year

bull Azure Active Directory

bull Outlook mail Calendar and Contacts

bull Office 365 Groups and Conversations

bull OneDrive Drives and Files

bull WebHooks for Outlook Groups User OneDrive data

bull SharePoint amp LiveID profiles

bull Office 365 Reports

bull Extensions

bull Excel API

bull FindMeetingTime

bull Planner

bull Extensions

bull Delta Queries

bull Sites (SharePoint)

httpsdevelopermicrosoftcomen-usgraphdocsconceptschangelog

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication

ADAL v10bull Authentication library to deal with Azure

Active Directory authentication flow

bull Support for Work and School accounts via Azure Active Directory

bull Full set of SDKs available

bull Supports Office 365 Services

bull User gives consent for all permissions at first start

MSAL v20bull Unified authentication library to deal with

authentication across the different identity platforms provided by Microsoft

bull Support for Work School and Personal accounts ndash No Azure requirement

bull User gives consent when the applications needs it

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Revoke User Consent

Native Application

bull Consent is part of the Refresh Token and typically stored on the device

bull Revoke Consent typically means uninstalling the application or clear the TokenCache

Web Server Applications

bull Consent is stored in Azure Active Directory and not part of the Refresh Token

bull User can Revoke Consent at httpsaccountactivedirectorywindowsazurecom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication flow for Microsoft Graph

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 8: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

What has become GA over the last year

bull Azure Active Directory

bull Outlook mail Calendar and Contacts

bull Office 365 Groups and Conversations

bull OneDrive Drives and Files

bull WebHooks for Outlook Groups User OneDrive data

bull SharePoint amp LiveID profiles

bull Office 365 Reports

bull Extensions

bull Excel API

bull FindMeetingTime

bull Planner

bull Extensions

bull Delta Queries

bull Sites (SharePoint)

httpsdevelopermicrosoftcomen-usgraphdocsconceptschangelog

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication

ADAL v10bull Authentication library to deal with Azure

Active Directory authentication flow

bull Support for Work and School accounts via Azure Active Directory

bull Full set of SDKs available

bull Supports Office 365 Services

bull User gives consent for all permissions at first start

MSAL v20bull Unified authentication library to deal with

authentication across the different identity platforms provided by Microsoft

bull Support for Work School and Personal accounts ndash No Azure requirement

bull User gives consent when the applications needs it

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Revoke User Consent

Native Application

bull Consent is part of the Refresh Token and typically stored on the device

bull Revoke Consent typically means uninstalling the application or clear the TokenCache

Web Server Applications

bull Consent is stored in Azure Active Directory and not part of the Refresh Token

bull User can Revoke Consent at httpsaccountactivedirectorywindowsazurecom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication flow for Microsoft Graph

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 9: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication

ADAL v10bull Authentication library to deal with Azure

Active Directory authentication flow

bull Support for Work and School accounts via Azure Active Directory

bull Full set of SDKs available

bull Supports Office 365 Services

bull User gives consent for all permissions at first start

MSAL v20bull Unified authentication library to deal with

authentication across the different identity platforms provided by Microsoft

bull Support for Work School and Personal accounts ndash No Azure requirement

bull User gives consent when the applications needs it

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Revoke User Consent

Native Application

bull Consent is part of the Refresh Token and typically stored on the device

bull Revoke Consent typically means uninstalling the application or clear the TokenCache

Web Server Applications

bull Consent is stored in Azure Active Directory and not part of the Refresh Token

bull User can Revoke Consent at httpsaccountactivedirectorywindowsazurecom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication flow for Microsoft Graph

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 10: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Revoke User Consent

Native Application

bull Consent is part of the Refresh Token and typically stored on the device

bull Revoke Consent typically means uninstalling the application or clear the TokenCache

Web Server Applications

bull Consent is stored in Azure Active Directory and not part of the Refresh Token

bull User can Revoke Consent at httpsaccountactivedirectorywindowsazurecom

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication flow for Microsoft Graph

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 11: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Authentication flow for Microsoft Graph

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 12: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOApplication registration and Starter project

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 13: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 14: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph API SDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 15: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Getting started

httpswwwnugetorgpackagesMicrosoftGraph

140

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 16: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

SDK Query Model

bull Implements the ODATA behaviour and signatures as methods on the Request

Select() -gt $select

Filter() -gt $filter

OrderBy() -gt $orderby

Expand() -gt $expand

bull Provides paging capabilitiesbull Through NextPageRequest property on query resultscollections

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 17: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Working with resources

bull Graph SDK implements support for managing the Graph ResourcesGetAsync() -gt GET

AddAsync()-gt POST

UpdateAsync()-gt PATCH

PutAsync() -gt PUT

DeleteAsync() -gt DELETE

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 18: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Microsoft Graph ASPNET SDK Example

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 19: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Create Group

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 20: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMODemo Microsoft Graph SDK for NET

httpsgithubcomSharePointPnPtreemasterSamplesMicrosoftGraphOffice365DotNetSDK

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 21: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 22: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Supported resources for Extensions

bull When using personal accounts (MSAL) you are limited to the event post group message contact and user resources

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 23: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Extensions

bull Add Custom Properties to Microsoft Graph Resources without requiring an external data source

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 24: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Type of Extensions

Open Extensions (aka Office 365 data extensions)

bull Untyped data that is scoped to the tenant

bull extensionName property should be unique within the tenant

bull Naming convention ComCapgeminiManagedEvent for the CapgeminiComtenant

Schema Extensions

bull Strongly typed data ndash define your own schema extension definition

bull Schema extension definition should have a unique name for its idbull By using the an existing vanity domain that is verified with your tenant (eg capgeminicom)

for capgemini_ManagedEventbull By using a name without a domain eg ManagedEvent The id will be based on the schema

name and prefixed with 8 random characters Eg extabcdefgh_ManagedEvent

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 25: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Schema Extensions LifecycleState LifeCycle state behaviour

InDevelopment bull Initial state ndash the owner app is still developing the schema extension bull The owner app can move the extension from InDevelopment to the Available state

Available bull The schema extension is available for use by all apps in any tenant bull Only the owner app can update the extension definition with additive changesbull The owner app can move the schema extension from Available to the Deprecated state

Deprecated bull The schema extension definition can no longer be read or modified bull Apps can however still read update or delete existing extension property valuesbull The owner app can move the schema extension from Deprecated back to the Available

state ()

() Fixed Make sure you have the latest bits

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 26: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

DEMOExtensions

MS Graph Group Data

Custom Extension Data

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 27: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 28: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Webhooks

bull Microsoft Graph REST API clients can subscribe to changes on the following resourcesbull Messagesbull Eventsbull Contactsbull Group conversationsbull Drive root items

bull After Microsoft Graph accepts the subscription request it pushes notifications to the URL specified in the subscription

bull The app then takes action according to its business logic For example it fetches more data updates cache and views etc

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 29: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

3 NOTIFY2 VALIDATE

subscriptions

notifications

1 CREATE

Outlook Apps

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 30: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Example Notification API

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 31: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

NGROKbull Webhook requires a public accessible endpoint for sending the notifications

bull During development your endpoint is running on httpslocalhost[portnumber]

bull Use NGROK tobull Create a public accessible endpoint

bull Tunnel the request from the public endpoint to httpslocalhost[portnumber]

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 32: Microsoft Graph with ASP.NET MVC

SharePoint Saturday Belgium 2017 bull October 21 bull Brussels

Thank You

Feedbackhttpspsbebe

Page 33: Microsoft Graph with ASP.NET MVC

Feedbackhttpspsbebe