SlideShare a Scribd company logo
European SharePoint Conference 2018 - Build an intelligent application by connecting it to the Microsoft Graph
BUILD AN INTELLIGENT APPLICATION BY
CONNECTING IT TO THE MICROSOFT
GRAPH
SÉBASTIEN LEVERT
Product Owner & Evangelist, Valo Intranet, Canada
Hi! I’m Seb!
@sebastienlevert | http://sebastienlevert.com | Product Evangelist & Partner Manager at
Agenda
Agenda
Introduction
Microsoft Graph is all about you
If you or your customers are part of the millions of users that are using Microsoft
cloud services, then Microsoft Graph is the fabric of all your data
It all starts with /me
Gateway to your data in the Microsoft
cloud
Your app
Gateway
Your or your
customer’s
data
Office 365 Windows 10 Enterprise Mobility + Security
1Microsoft Graph
Microsoft Graph
ALL
Microsoft 365
Office 365
Windows 10
EMS
ALL ONE
https://graph.microsoft.com
Microsoft 365 Platform
web, device,
and service apps
Extend Microsoft 365 experiences
1
iOS/Android/Windows/Web
Build your experience
Microsoft Graph
Agenda
Getting Started
Exploring the Graph
• Using the Graph Explorer
• Using plain HTTP Calls
• Using .NET
• Using PnP PowerShell
• Using JavaScript (Browser or Node)
• Using the SDKs
European SharePoint Conference 2018 - Build an intelligent application by connecting it to the Microsoft Graph
Acting on the graph
• Getting Graph data
• Creating Graph data
• Updating Graph data
• Deleting Graph data
• Executing actions on the Graph
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Connecting to your tenant
Connect-PnPOnline -Graph -LaunchBrowser
# Getting the appropriate scoped
Connect-PnPOnline –Scopes @("Mail.Send", “User.Read.All")
# Build the Headers with the Access Token value
$headers = @{
"Authorization" = [String]::Format("Bearer {0}", (Get-PnPAccessToken));
"Content-Type" = "application/json"
}
# Calling the Microsoft Graph
Invoke-RestMethod -Header $headers -Uri "https://graph.microsoft.com/v1.0/me"
Get-Contacts.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GET https://graph.microsoft.com/v1.0/me/contacts
Accept: application/json
Content-Type: application/json
{
"value": [{
"id":"AAMkAGZkNzVjNzkyLWE0OT…",
"createdDateTime": "2018-05-22T18:19:02Z",
"lastModifiedDateTime": "2018-05-22T18:19:02Z",
//…
}]
}
Listing All Contacts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GET https://graph.microsoft.com/v1.0/me/contacts/AAMkAGZkNzVjNzkyLWE0OT…
Accept: application/json
Content-Type: application/json
{
"id":"AAMkAGZkNzVjNzkyLWE0OT…",
"createdDateTime": "2018-05-22T18:19:02Z",
"lastModifiedDateTime": "2018-05-22T18:19:02Z",
//…
}
Getting a specific Contacts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
POST https://graph.microsoft.com/v1.0/me/contacts
Accept: application/json
Content-Type: application/json
{
"givenName": "Sébastien",
"surname": "Levert",
"emailAddresses": [{
"address": "seb@valointranet.com",
"name": "Sébastien Levert"
}],
"businessPhones": [
"+1 555 555 5341"
]
}
Creating a Contact
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
PATCH https://graph.microsoft.com/v1.0/me/contacts/AAMkAGZkNzVjNzkyLWE0OT…
Accept: application/json
Content-Type: application/json
{
"givenName":"Seb"
}
Updating a specific Contact
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DELETE https://graph.microsoft.com/v1.0/me/contacts/AAMkAGZkNzVjNzkyLWE0OT…
Accept: application/json
Content-Type: application/json
{
}
Getting a specific Contacts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Building an Email JSON representation
$EmailBody = @{
"Message" = @{
"Subject" = "This is a test email from PowerShell!" ;
"Body" = @{
"ContentType" = "HTML" ;
"Content" = "This email was sent from PowerShell with the Microsoft Graph.";
} ;
"ToRecipients" = @(
@{
"EmailAddress" = @{
"Address" = "admin@slevert.onmicrosoft.com"
}
}
)
}
}
Invoke-RestMethod -Header $headers –Uri "https://graph.microsoft.com/v1.0/me/sendMail" -
Method Post -Body ($EmailBody | ConvertTo-Json -Depth 4)
Send-Email.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Requiring the Microsoft Graph SDK
const MicrosoftGraph = require("../../lib/src/index.js").Client;
// Getting the Access Token from a secret file
const secrets = require("./secrets");
// Initializing the Microsoft Graph SDK
const client = MicrosoftGraph.init({
defaultVersion: 'v1.0’,
debugLogging: true,
authProvider: (done) => {
done(null, secrets.accessToken);
}
});
send-email.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Building the Email Message
const mail = {
subject: "This is a test email from NodeJS!",
toRecipients: [{
emailAddress: {
address: "admin@slevert.onmicrosoft.com"
}
}],
body: {
content: "This email was sent from NodeJS using the Microsoft Graph.",
contentType: "html"
}
}
// Email from the Microsoft Graph
client.api("/users/me/sendMail").post({message: mail}, (err, res) => {
if (err) console.log(err);
else console.log("Sent an email");
});
send-email.js
Agenda
Advanced Scenarios
Batching
•Batch requests are always sent using
POST to the /$batch endpoint.
•Dependent Queries are supported
•Can help with URL limitations
•Up to 20 individual requests
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Creating our Subscription
POST https://graph.microsoft.com/v1.0/$batch
Accept: application/json
Content-Type: application/json
{
"requests": [{
"id": "1",
"method": "GET",
"url": "/me/contacts"
},
{
"id": "2",
"url": "/me",
"method": "PATCH",
"body": { "city" : "Montreal"},
"headers": { "Content-Type": "application/json"}
}]
}
Batch multiple Queries
Be notified by the Graph
• Using Webhooks to get the notification
• Using Delta Query to query the changes
• Supported by the following resources :
• Contacts
• Conversations
• Events
• Messages
• Groups
• Users
• Drives
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Creating our Subscription
POST https://graph.microsoft.com/v1.0/subscriptions
Accept: application/json
Content-Type: application/json
{
"changeType": "Created",
"notificationUrl": "https://<url>/api/webhookCallback",
"resource": "me/contacts"
}
Create a Subscription
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Getting notified by the WebHook
POST https://<url>/api/webhookCallback
Accept: application/json
Content-Type: application/json
{
"value":[{
"subscriptionId":"7f105c7d-2dc5-4530-97cd-4e7af6534c07",
"subscriptionExpirationDateTime":"2015-11-20T18:23:45.9356913Z",
"changeType":"Created",
"resource":"Users/<user-id>/contacts/<contact-id>",
"resourceData":{
"@odata.type":"#Microsoft.Graph.Message",
"@odata.id":" Users/<user-id>/contacts/<contact-id>",
"@odata.etag":"W/"CQAAABYAAACoeN6SYXGLRrvRm+CYrrfQAACvvGdb"",
"Id":"<contact-id>"
}
}]
}
Being notified by the Graph
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Getting notified by the WebHook
GET https://graph.microsoft.com/v1.0/me/contacts/delta
Accept: application/json
Content-Type: application/json
{
"@odata.nextLink":"{…}/v1.0/me/contacts/delta?$skiptoken={skipToken}",
"value": [{
//…
}]
}
Using Delta Query
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Getting the Delta Link once all pages were covered
GET https://graph.microsoft.com/v1.0/me/contacts/delta?$skiptoken={skipToken}
{
"@odata.deltaLink":"{…}/v1.0/me/contacts/delta?$deltatoken={deltatoken}",
"value": []
}
Using the Delta Query Strategy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Getting the Delta Link once all pages were covered
GET https://graph.microsoft.com/v1.0/me/contacts/delta?$deltatoken={deltatoken}
Accept: application/json
Content-Type: application/json
{
"@odata.deltaLink":"{…}/v1.0/me/contacts/delta?$deltatoken={deltatoken}",
"value": [{
//…
}]
}
Getting the Delta Content
Extending the Graph
• Open type extensions for simple
key/value properties
• Schema extensions for typed properties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
POST https://graph.microsoft.com/v1.0/me/contacts/<id>/extensions
{
"@odata.type": "Microsoft.Graph.OpenTypeExtension",
"extensionName": "Contacts.Extensions.LinkedIn",
"linkedInUrl": "https://www.linkedin.com/in/seb/"
}
Adding an Open Extension
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GET https://graph.microsoft.com/v1.0/me/contacts/<id>?$
expand=Extensions($filter=Id eq 'Contacts.Extensions.LinkedIn')
{
//…
"extensions": [{
"@odata.type": "#microsoft.graph.openTypeExtension",
"extensionName": "Contacts.Extensions.LinkedIn",
"linkedInUrl": "https://www.linkedin.com/in/seb/"
}]
}
Getting an Open Extension Value
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
POST https://graph.microsoft.com/v1.0/schemaExtensions
{
"id": "domain_linkedinInformation",
"description": "All information about LinkedIn account",
"targetTypes": ["Contacts"],
"available": "Online",
"properties" : [{
"name": "linkedInUrl",
"type": "String"
}]
}
Defining a Schema Extension
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
POST https://graph.microsoft.com/v1.0/me/contacts/<id>/extensions
{
"domain_linkedinInformation": {
"linkedInUrl": "https://www.linkedin.com/in/seb/"
}
}
Setting a Schema Extension
Best Practices
• When no response required (PUT, PATCH,
POST), opt out of the response by using
HTTP Prefer return=minimal
• Using projection & filters will limit the
number of data transferred and speed up
your applications
• Watch for server-side pagination and look
for @odata.nextLink property in
response
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GET
https://graph.microsoft.com/v1.0/me/contacts?$select=displayName,businessPhones
Accept: application/json
Content-Type: application/json
{
"value": [{
"id":"AAMkAGZkNzVjNzkyLWE0OT…",
"displayName": "Sébastien Levert",
"businessPhones": [
"+1 555 555 5555",
]
//…
}]
}
Projections
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
GET https://graph.microsoft.com/v1.0/me/contacts?$filter=startswith(displayName,
'Seb')
Accept: application/json
Content-Type: application/json
{
"value": [{
"id":"AAMkAGZkNzVjNzkyLWE0OT…",
"displayName": "Seb Levert",
"businessPhones": [
"+1 555 555 5555",
]
//…
}]
}
Filters
And…What about
SharePoint?
• The Microsoft Graph exposes items, lists,
webs and site collections
• SharePoint Framework has a built-in
mechanism available to interact with the
Microsoft Graph
Agenda
Next Steps
Resources
• https://dev.office.com
• https://aka.ms/ge
• https://graph.microsoft.com
• https://github.com/microsoftgraph/msgraph-community-samples
Share your experience
• Use hashtags to share your experience
• #Office365Dev
• #MicrosoftGraph
• Hack with the Microsoft Graph!
• https://aka.ms/office365hackathon
• Log issues & questions to the GitHub Repositories
Thank you!
@sebastienlevert | http://sebastienlevert.com | Product Evangelist & Partner Manager at

More Related Content

PPTX
SharePoint Conference 2018 - Build an intelligent application by connecting i...
Sébastien Levert
 
PPTX
SharePoint Fest DC - Everything your need to know about the Microsoft Graph a...
Sébastien Levert
 
PPTX
Lyudmila Zharova: Developing Solutions for SharePoint 2010 Using the Client O...
SharePoint Saturday NY
 
PPTX
SharePoint 2010 Client-side Object Model
Phil Wicklund
 
PPTX
From Event Receivers to SharePoint Webhooks
André Vala
 
PPTX
SharePoint 2010 Application Development Overview
Rob Windsor
 
PPTX
Advanced SharePoint Web Part Development
Rob Windsor
 
PPTX
How to implement email functionalities with Mailjet api
E Boisgontier
 
SharePoint Conference 2018 - Build an intelligent application by connecting i...
Sébastien Levert
 
SharePoint Fest DC - Everything your need to know about the Microsoft Graph a...
Sébastien Levert
 
Lyudmila Zharova: Developing Solutions for SharePoint 2010 Using the Client O...
SharePoint Saturday NY
 
SharePoint 2010 Client-side Object Model
Phil Wicklund
 
From Event Receivers to SharePoint Webhooks
André Vala
 
SharePoint 2010 Application Development Overview
Rob Windsor
 
Advanced SharePoint Web Part Development
Rob Windsor
 
How to implement email functionalities with Mailjet api
E Boisgontier
 

What's hot (15)

PPTX
Data Access Options in SharePoint 2010
Rob Windsor
 
PPTX
Office 365 Groups Deep Dive
André Vala
 
PPTX
MICROSOFT ASP.NET ONLINE TRAINING
Santhosh Sap
 
DOCX
Ui5 con databinding
jatin dharani
 
PPTX
Get started with building native mobile apps interacting with SharePoint
Yaroslav Pentsarskyy [MVP]
 
PPTX
From Event Receivers to SharePoint Webhooks
André Vala
 
PDF
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.
Eric Shupps
 
PPTX
Share Point For Beginners V1
MJ Ferdous
 
PPTX
How to (remote) control Office 365 with Azure (SharePoint Konferenz ppEDV Erd...
atwork
 
PDF
Taking Advantage of the SharePoint 2013 REST API
Eric Shupps
 
PPTX
Benefits of Hypermedia API
Paulo Gandra de Sousa
 
PPT
Mashup
Naveen P.N
 
PPTX
Integrating Your Site With Internet Explorer 8
goodfriday
 
PPTX
Exam 70-488 Developing Microsoft SharePoint Server 2013 Core Solutions Learni...
Mahmoud Hamed Mahmoud
 
Data Access Options in SharePoint 2010
Rob Windsor
 
Office 365 Groups Deep Dive
André Vala
 
MICROSOFT ASP.NET ONLINE TRAINING
Santhosh Sap
 
Ui5 con databinding
jatin dharani
 
Get started with building native mobile apps interacting with SharePoint
Yaroslav Pentsarskyy [MVP]
 
From Event Receivers to SharePoint Webhooks
André Vala
 
Who Are You and What Do You Want? Working with OAuth in SharePoint 2013.
Eric Shupps
 
Share Point For Beginners V1
MJ Ferdous
 
How to (remote) control Office 365 with Azure (SharePoint Konferenz ppEDV Erd...
atwork
 
Taking Advantage of the SharePoint 2013 REST API
Eric Shupps
 
Benefits of Hypermedia API
Paulo Gandra de Sousa
 
Mashup
Naveen P.N
 
Integrating Your Site With Internet Explorer 8
goodfriday
 
Exam 70-488 Developing Microsoft SharePoint Server 2013 Core Solutions Learni...
Mahmoud Hamed Mahmoud
 
Ad

Similar to European SharePoint Conference 2018 - Build an intelligent application by connecting it to the Microsoft Graph (20)

PPTX
SharePoint Saturday Chicago - Everything your need to know about the Microsof...
Sébastien Levert
 
PPTX
Microsoft Graph: Connect to essential data every app needs
Microsoft Tech Community
 
PPTX
Microsoft Graph: Connect to essential data every app needs
Microsoft Tech Community
 
PPTX
SharePoint Fest 2019 - Build an intelligent application by connecting it to t...
Sébastien Levert
 
PPTX
SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!
Sébastien Levert
 
PPTX
APIs, APIs Everywhere!
BIWUG
 
PPTX
SharePoint Conference 2018 - APIs, APIs everywhere!
Sébastien Levert
 
PPTX
SharePoint Fest DC 2018 - Everything your need to know about the Microsoft Gr...
Sébastien Levert
 
PPTX
SPS Utah - Everything your need to know about the Microsoft Graph as a ShareP...
Sébastien Levert
 
PPTX
SharePoint Fest Seattle 2017 - Everything your need to know about the Microso...
Sébastien Levert
 
PPTX
An introduction to Microsoft Graph for developers
Microsoft 365 Developer
 
PDF
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Codemotion
 
PDF
Xamarin microsoft graph
Nicolò Carandini
 
PDF
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
NCCOMMS
 
PPT
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
Kiril Iliev
 
PPTX
Build 2017 - P4152 - Microsoft Graph - Delta Query and Webhooks
Windows Developer
 
PDF
Windows Azure: Connecting the Dots for a Mobile Workforce
TechWell
 
PDF
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha
 
PDF
JavaOne Brasil 2016: JavaEE e HTML5: da web/desktop ao mobile
Loiane Groner
 
PDF
Microsoft graph and power platform champ
Kumton Suttiraksiri
 
SharePoint Saturday Chicago - Everything your need to know about the Microsof...
Sébastien Levert
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Tech Community
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Tech Community
 
SharePoint Fest 2019 - Build an intelligent application by connecting it to t...
Sébastien Levert
 
SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!
Sébastien Levert
 
APIs, APIs Everywhere!
BIWUG
 
SharePoint Conference 2018 - APIs, APIs everywhere!
Sébastien Levert
 
SharePoint Fest DC 2018 - Everything your need to know about the Microsoft Gr...
Sébastien Levert
 
SPS Utah - Everything your need to know about the Microsoft Graph as a ShareP...
Sébastien Levert
 
SharePoint Fest Seattle 2017 - Everything your need to know about the Microso...
Sébastien Levert
 
An introduction to Microsoft Graph for developers
Microsoft 365 Developer
 
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Codemotion
 
Xamarin microsoft graph
Nicolò Carandini
 
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
NCCOMMS
 
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
Kiril Iliev
 
Build 2017 - P4152 - Microsoft Graph - Delta Query and Webhooks
Windows Developer
 
Windows Azure: Connecting the Dots for a Mobile Workforce
TechWell
 
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha
 
JavaOne Brasil 2016: JavaEE e HTML5: da web/desktop ao mobile
Loiane Groner
 
Microsoft graph and power platform champ
Kumton Suttiraksiri
 
Ad

More from Sébastien Levert (20)

PPTX
SharePoint Fest Chicago 2019 - Build a Full Intranet in 70 minutes
Sébastien Levert
 
PPTX
SharePoint Fest Chicago 2019 - Building tailored search experiences in Modern...
Sébastien Levert
 
PPTX
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
PPTX
ESPC19 - Supercharge Your Teams Experience with Advanced Development Techniques
Sébastien Levert
 
PPTX
ESPC19 - Build Your First Microsoft Teams App Using SPFx
Sébastien Levert
 
PPTX
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
PPTX
SharePoint Fest Seattle 2019 - Building tailored search experiences in Modern...
Sébastien Levert
 
PPTX
SPC19 - Building tailored search experiences in Modern SharePoint
Sébastien Levert
 
PPTX
SharePoint Fest DC 2019 - Bot Framework and Microsoft Graph - Join The Revolu...
Sébastien Levert
 
PPTX
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
PPTX
Webinar - 2020-03-24 - Build your first Microsoft Teams app using SPFx
Sébastien Levert
 
PPTX
SPTechCon Austin 2019 - Top 10 feature trends to make you fall in love with y...
Sébastien Levert
 
PPTX
SPTechCon Austin 2019 - From SharePoint to Office 365 development
Sébastien Levert
 
PPTX
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
Sébastien Levert
 
PPTX
SharePoint Saturday Vienna 2018 - Top 10 feature trends to make you fall in l...
Sébastien Levert
 
PPTX
SharePoint Saturday Vienna 2018 - Building a modern intranet in 60 minutes
Sébastien Levert
 
PPTX
Nashville SharePoint User Group 2018 - Building a modern intranet in 60 minutes
Sébastien Levert
 
PPTX
SharePoint Fest Seattle 2018 - Build an intelligent application by connecting...
Sébastien Levert
 
PPTX
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
Sébastien Levert
 
PPTX
SPTechCon Boston 2018 - Top 10 feature trends to make you fall in love with y...
Sébastien Levert
 
SharePoint Fest Chicago 2019 - Build a Full Intranet in 70 minutes
Sébastien Levert
 
SharePoint Fest Chicago 2019 - Building tailored search experiences in Modern...
Sébastien Levert
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
ESPC19 - Supercharge Your Teams Experience with Advanced Development Techniques
Sébastien Levert
 
ESPC19 - Build Your First Microsoft Teams App Using SPFx
Sébastien Levert
 
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Seattle 2019 - Building tailored search experiences in Modern...
Sébastien Levert
 
SPC19 - Building tailored search experiences in Modern SharePoint
Sébastien Levert
 
SharePoint Fest DC 2019 - Bot Framework and Microsoft Graph - Join The Revolu...
Sébastien Levert
 
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
Webinar - 2020-03-24 - Build your first Microsoft Teams app using SPFx
Sébastien Levert
 
SPTechCon Austin 2019 - Top 10 feature trends to make you fall in love with y...
Sébastien Levert
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
Sébastien Levert
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
Sébastien Levert
 
SharePoint Saturday Vienna 2018 - Top 10 feature trends to make you fall in l...
Sébastien Levert
 
SharePoint Saturday Vienna 2018 - Building a modern intranet in 60 minutes
Sébastien Levert
 
Nashville SharePoint User Group 2018 - Building a modern intranet in 60 minutes
Sébastien Levert
 
SharePoint Fest Seattle 2018 - Build an intelligent application by connecting...
Sébastien Levert
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
Sébastien Levert
 
SPTechCon Boston 2018 - Top 10 feature trends to make you fall in love with y...
Sébastien Levert
 

Recently uploaded (20)

PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Software Development Methodologies in 2025
KodekX
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Doc9.....................................
SofiaCollazos
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 

European SharePoint Conference 2018 - Build an intelligent application by connecting it to the Microsoft Graph

Editor's Notes

  • #2: This is the Pre-Title Screen. Please do not place any content on this screen.
  • #3: To add your image, please insert your picture and scale it to be bigger than the size of the white box shown.