Pages

Saturday, September 9, 2017

WebHooks in SharePoint Online – Post 1 – Introduction

“WebHooks in SharePoint Online” will be a series of blog posts.

  1. WebHooks in SharePoint Online – Post 1 – Introduction

This is the first post of the series and this post will be on introduction to SharePoint Online WebHooks.

Introduction to WebHooks

WebHooks are HTTP services where the subscribers will notified of events happening. Not only Office 365 or SharePoint uses WebHooks, but it’s a universal model used by Facebook, GitHub, MailChimp etc.

Introduction to WebHooks in SharePoint Online / SharePoint Online WebHooks

WebHooks in SharePoint Online are used for Document Libraries or lists. WebHooks in SharePoint Online are asynchronous event supported, which means that the notification is pushed to subscribers when items are added, updated, deleted or moved. WebHooks in SharePoint Online are not synchronous (“-ing”) event supported. Microsoft recommends Remote Event Receivers for synchronous events.

Why WebHooks over Remote Event Receivers

  • WebHooks are easier to consume by “non-SharePoint” developers

Advantages of SharePoint Online WebHooks

  • Easy to subscribe and push notification
  • Automatic retry is available on failure up to 5 minutes
  • Deleted event is available
  • Universal model
  • Can be used in modern SharePoint development stack such as SharePoint Framework

Disadvantages of SharePoint Online WebHooks

  • The subscription period will be expired automatically in 6 months and the subscribers have to re subscribe.
  • You cannot use webhooks to cancel an operation.
  • SharePoint Online lists and libraries are available.
  • No synchronous method is supported.
  • Acknowledgement must be received quickly within 5 seconds.
  • Subscription and notification uses the same url. The developers should implement their own logics to differ the calls.

Keep in mind when you develop solutions using WebHooks

  • WebHooks are only for asynchronous calls
  • Send the acknowledgement within 5 seconds
  • Implement a way to update the subscription if it is about to expire.

1 comment: