SlideShare a Scribd company logo
Using SharePoint with
Cognitive Services for
automatic image tagging
Markus Hintner
Microsoft
Cognitive
Services
Give your apps
a human side
Computer Vision API
Distill actionable
information from images
Video API
Analyze, edit, and
process videos within
your app
Face API
Detect, identify, analyze,
organize, and tag faces in
photos
Content Moderator
API
Machine-assisted
moderation of text,
images, and videos,
augmented with human
review tools
Vision
Emotion API
Personalize experiences
with emotion recognition
Visual Feature Description
Categories categorizes image content according to a taxonomy defined in
documentation
Tags tags the image with a detailed list of words related to the image
content
Description describes the image content with a complete English sentence
Faces detects if faces are present. If present, generate coordinates, gender
and age
ImageType detects if image is clipart or a line drawing
Color determines the accent color, dominant color, and whether an image is
black&white
Adult detects if the image is pornographic in nature (depicts nudity or a sex
act). Sexually suggestive content is also detected
Celebrities - identifies celebrities if detected in the image
Landmarks - identifies landmarks if detected in the image
Supported Languages (as of today): EN and ZH (Simplified Chinese)
Subscription key which provides access to this API.
Found in your Cognitive Services accounts
raw image binary or
image URL
Supported image formats: JPEG, PNG, GIF, BMP.
Image file size must be less than 4MB.
Image dimensions must be at least 50 x 50
WebHooks
HTTP/1.1 200 OK
Content-Type: text/plain
{randomString}
SharePoint
Service
POST /_api/web/lists('list-id')/subscriptions
Yourapplication
POST https://{your host}/your/webhook/service
?validationToken={randomString}
YourWebHook
notificationservice
endpoint
HTTP/1.1 201 Created
Yourapplication
Content-Type: application/json
{
"resource": "https://contoso.sharepoint.com/_api/web/lists({id})",
"notificationUrl": "https://{your host}/your/webhook/service ",
"expirationDateTime": "2018-04-11T10:45:57+00:00"
}
HTTP/1.1 200 OK
SharePoint
Service
YourWebHook
notificationservice
endpoint
POST https://{your host}/your/webhook/service
{
"value":[
{
"subscriptionId":"91779246-afe9-4525-b122-6c199ae89211",
"clientState":"00000000-0000-0000-0000-000000000000",
"expirationDateTime":"2016-04-30T17:27:00.0000000Z",
"resource":"b9f6f714-9df8-470b-b22e-653855e1c181",
"tenantId":"00000000-0000-0000-0000-000000000000",
"siteUrl":"/",
"webId":"dbc5a806-e4d4-46e5-951c-6344d70b62fa"
}
]
}
YourWebHook
notificationservice
endpoint
SharePoint
Service
POST https://{your host}/your/webhook/service
Storage
Queue
WebJob
HTTP/1.1 200 OK
SharePoint
Service
WebHook creation: POST /_api/web/lists('list-id')/subscriptions
Yourapplication
Grab “CurrentChangeToken” from list
YourWebHook
notificationservice
endpoint POST https://{your host}/your/webhook/service
Storage
Queue
WebJob
Grab change
token from DB
Persis last used token
per subscription
SQL
Azure
DBPersist token per
subscription
The WebHook payload is very small
Notifications are batched because processing depends on the CSOM GetChanges() call
PATCH /_api/web/lists('list-
id')/subscriptions(‘subscriptionID’)
Have a background job that regularly renews the needed subscriptions (recommended model)
Renew at notification time (will drop WebHook if there’s no event within the defined expiration window)
Visual Content
Intelligence
By Diego Grez - Radiografía_pulmones_Francisca_Lorca.jpg, CC BY-SA 3.0,
https://commons.wikimedia.org/w/index.php?curid=10302947
Questions?
markus@hintner.cc
@MarkusHintner

More Related Content

Similar to Using SharePoint with cognitive services for automatic image tagging

Using Cognitive Services
Using Cognitive ServicesUsing Cognitive Services
Using Cognitive Services
Eng Teong Cheah
 
Automatic multi-modal metadata annotation based on trained cognitive solution...
Automatic multi-modal metadata annotation based on trained cognitive solution...Automatic multi-modal metadata annotation based on trained cognitive solution...
Automatic multi-modal metadata annotation based on trained cognitive solution...
FIAT/IFTA
 
IBM cognitive service introduction
IBM cognitive service introductionIBM cognitive service introduction
IBM cognitive service introduction
Hui Wen Han
 
Overview of Microsoft Azure AI Services
Overview of Microsoft Azure AI ServicesOverview of Microsoft Azure AI Services
Overview of Microsoft Azure AI Services
Craig Milroy
 
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data apps
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data appsGianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data apps
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data apps
Codemotion
 
Computers have feelings too
Computers have feelings tooComputers have feelings too
Computers have feelings too
Paul Glavich
 
Azure beyond IaaS
Azure  beyond IaaSAzure  beyond IaaS
Azure beyond IaaS
Bipeen Sinha
 
Intelligent Apps - Amplifying Human Ingenuity
Intelligent Apps - Amplifying Human IngenuityIntelligent Apps - Amplifying Human Ingenuity
Intelligent Apps - Amplifying Human Ingenuity
David J Rosenthal
 
Global AI Night Cleveland.pptx
Global AI Night Cleveland.pptxGlobal AI Night Cleveland.pptx
Global AI Night Cleveland.pptx
Luis Beltran
 
Microsoft Azure beyond IaaS
Microsoft Azure  beyond IaaSMicrosoft Azure  beyond IaaS
Microsoft Azure beyond IaaS
Bipeen Sinha
 
Cognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & VisionCognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & Vision
Nick Landry
 
Artificial Intelligence API Services Compared
Artificial Intelligence API Services ComparedArtificial Intelligence API Services Compared
Artificial Intelligence API Services Compared
Craig Milroy
 
Compared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure ServicesCompared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure Services
Craig Milroy
 
Microsoft Cognitive Services
Microsoft Cognitive ServicesMicrosoft Cognitive Services
Microsoft Cognitive Services
Anyline
 
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018Microsoft AI: Cognitive Service - Global Azure bootcamp 2018
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018
JoTechies
 
Intelligent ChatBot
Intelligent ChatBotIntelligent ChatBot
Intelligent ChatBot
antimo musone
 
Evolve your app’s video experience with Azure: Processing and Video AI at scale
Evolve your app’s video experience with Azure: Processing and Video AI at scaleEvolve your app’s video experience with Azure: Processing and Video AI at scale
Evolve your app’s video experience with Azure: Processing and Video AI at scale
Microsoft Tech Community
 
Cognitive Services APIs [Mihai Negrea]
Cognitive Services APIs [Mihai Negrea]Cognitive Services APIs [Mihai Negrea]
Cognitive Services APIs [Mihai Negrea]
ITCamp
 
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITY
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITYSEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITY
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITY
Amit Sheth
 

Similar to Using SharePoint with cognitive services for automatic image tagging (20)

Using Cognitive Services
Using Cognitive ServicesUsing Cognitive Services
Using Cognitive Services
 
Automatic multi-modal metadata annotation based on trained cognitive solution...
Automatic multi-modal metadata annotation based on trained cognitive solution...Automatic multi-modal metadata annotation based on trained cognitive solution...
Automatic multi-modal metadata annotation based on trained cognitive solution...
 
IBM cognitive service introduction
IBM cognitive service introductionIBM cognitive service introduction
IBM cognitive service introduction
 
Overview of Microsoft Azure AI Services
Overview of Microsoft Azure AI ServicesOverview of Microsoft Azure AI Services
Overview of Microsoft Azure AI Services
 
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data apps
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data appsGianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data apps
Gianluigi Viganò - How to use HP HEAVEN-on-demand functions for Big Data apps
 
Computers have feelings too
Computers have feelings tooComputers have feelings too
Computers have feelings too
 
Azure beyond IaaS
Azure  beyond IaaSAzure  beyond IaaS
Azure beyond IaaS
 
Intelligent Apps - Amplifying Human Ingenuity
Intelligent Apps - Amplifying Human IngenuityIntelligent Apps - Amplifying Human Ingenuity
Intelligent Apps - Amplifying Human Ingenuity
 
Global AI Night Cleveland.pptx
Global AI Night Cleveland.pptxGlobal AI Night Cleveland.pptx
Global AI Night Cleveland.pptx
 
Microsoft Azure beyond IaaS
Microsoft Azure  beyond IaaSMicrosoft Azure  beyond IaaS
Microsoft Azure beyond IaaS
 
NetBase API Data Sheet
NetBase API Data SheetNetBase API Data Sheet
NetBase API Data Sheet
 
Cognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & VisionCognitive Services: Building Smart Apps with Speech, NLP & Vision
Cognitive Services: Building Smart Apps with Speech, NLP & Vision
 
Artificial Intelligence API Services Compared
Artificial Intelligence API Services ComparedArtificial Intelligence API Services Compared
Artificial Intelligence API Services Compared
 
Compared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure ServicesCompared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure Services
 
Microsoft Cognitive Services
Microsoft Cognitive ServicesMicrosoft Cognitive Services
Microsoft Cognitive Services
 
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018Microsoft AI: Cognitive Service - Global Azure bootcamp 2018
Microsoft AI: Cognitive Service - Global Azure bootcamp 2018
 
Intelligent ChatBot
Intelligent ChatBotIntelligent ChatBot
Intelligent ChatBot
 
Evolve your app’s video experience with Azure: Processing and Video AI at scale
Evolve your app’s video experience with Azure: Processing and Video AI at scaleEvolve your app’s video experience with Azure: Processing and Video AI at scale
Evolve your app’s video experience with Azure: Processing and Video AI at scale
 
Cognitive Services APIs [Mihai Negrea]
Cognitive Services APIs [Mihai Negrea]Cognitive Services APIs [Mihai Negrea]
Cognitive Services APIs [Mihai Negrea]
 
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITY
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITYSEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITY
SEMANTIC CONTENT MANAGEMENT FOR ENTERPRISES AND NATIONAL SECURITY
 

Recently uploaded

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 

Recently uploaded (20)

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 

Using SharePoint with cognitive services for automatic image tagging

  • 1. Using SharePoint with Cognitive Services for automatic image tagging Markus Hintner
  • 2.
  • 3.
  • 4.
  • 6. Computer Vision API Distill actionable information from images Video API Analyze, edit, and process videos within your app Face API Detect, identify, analyze, organize, and tag faces in photos Content Moderator API Machine-assisted moderation of text, images, and videos, augmented with human review tools Vision Emotion API Personalize experiences with emotion recognition
  • 7.
  • 8.
  • 9.
  • 10. Visual Feature Description Categories categorizes image content according to a taxonomy defined in documentation Tags tags the image with a detailed list of words related to the image content Description describes the image content with a complete English sentence Faces detects if faces are present. If present, generate coordinates, gender and age ImageType detects if image is clipart or a line drawing Color determines the accent color, dominant color, and whether an image is black&white Adult detects if the image is pornographic in nature (depicts nudity or a sex act). Sexually suggestive content is also detected
  • 11. Celebrities - identifies celebrities if detected in the image Landmarks - identifies landmarks if detected in the image Supported Languages (as of today): EN and ZH (Simplified Chinese)
  • 12. Subscription key which provides access to this API. Found in your Cognitive Services accounts
  • 13.
  • 14. raw image binary or image URL Supported image formats: JPEG, PNG, GIF, BMP. Image file size must be less than 4MB. Image dimensions must be at least 50 x 50
  • 15.
  • 16.
  • 17.
  • 19.
  • 20. HTTP/1.1 200 OK Content-Type: text/plain {randomString} SharePoint Service POST /_api/web/lists('list-id')/subscriptions Yourapplication POST https://{your host}/your/webhook/service ?validationToken={randomString} YourWebHook notificationservice endpoint HTTP/1.1 201 Created Yourapplication Content-Type: application/json { "resource": "https://contoso.sharepoint.com/_api/web/lists({id})", "notificationUrl": "https://{your host}/your/webhook/service ", "expirationDateTime": "2018-04-11T10:45:57+00:00" }
  • 21. HTTP/1.1 200 OK SharePoint Service YourWebHook notificationservice endpoint POST https://{your host}/your/webhook/service { "value":[ { "subscriptionId":"91779246-afe9-4525-b122-6c199ae89211", "clientState":"00000000-0000-0000-0000-000000000000", "expirationDateTime":"2016-04-30T17:27:00.0000000Z", "resource":"b9f6f714-9df8-470b-b22e-653855e1c181", "tenantId":"00000000-0000-0000-0000-000000000000", "siteUrl":"/", "webId":"dbc5a806-e4d4-46e5-951c-6344d70b62fa" } ] }
  • 23. SharePoint Service WebHook creation: POST /_api/web/lists('list-id')/subscriptions Yourapplication Grab “CurrentChangeToken” from list YourWebHook notificationservice endpoint POST https://{your host}/your/webhook/service Storage Queue WebJob Grab change token from DB Persis last used token per subscription SQL Azure DBPersist token per subscription
  • 24. The WebHook payload is very small Notifications are batched because processing depends on the CSOM GetChanges() call
  • 25. PATCH /_api/web/lists('list- id')/subscriptions(‘subscriptionID’) Have a background job that regularly renews the needed subscriptions (recommended model) Renew at notification time (will drop WebHook if there’s no event within the defined expiration window)
  • 26.
  • 27.
  • 28.
  • 29.
  • 30. Visual Content Intelligence By Diego Grez - Radiografía_pulmones_Francisca_Lorca.jpg, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10302947
  • 31.
  • 32.