新建订阅
在 SharePoint 列表中新建一个 webhook 订阅。
Permissions
应用程序必须至少具有对 SharePoint 列表的编辑权限,将在该列表中创建订阅。
如果你的应用程序是 Microsoft Azure Active Directory (Azure AD) 应用程序
必须向 Azure AD 应用授予下表中指定的权限:
应用程序 | 权限 |
---|---|
Office 365 SharePoint Online | 在所有网站集中读取和写入项及列表。 |
如果你的应用程序是 SharePoint 加载项
必须向 SharePoint 加载项授予以下权限或更高权限:
范围 | 权限 |
---|---|
列表 | 管理 |
HTTP 请求
POST /_api/web/lists('list-id')/subscriptions
请求正文
请求正文中包含以下属性。
名称 | 类型 | 说明 |
---|---|---|
资源 | string | 从中接收通知的列表的 URL。 |
notificationUrl | string | 向其发送通知的服务 URL。 |
expirationDateTime | date | 通知将过期并被删除的日期。 |
clientState | string | 可选。 传递回所有通知上的客户端的不透明字符串。 可以使用它对通知进行验证,或标记不同的订阅。 |
示例
POST /_api/web/lists('5C77031A-9621-4DFC-BB5D-57803A94E91D')/subscriptions
Accept: application/json
Content-Type: application/json
{
"resource": "https://contoso.sharepoint.com/_api/web/lists('5C77031A-9621-4DFC-BB5D-57803A94E91D')",
"notificationUrl": "https://91e383a5.ngrok.io/api/webhook/handlerequest",
"expirationDateTime": "2016-04-27T16:17:57+00:00"
}
响应
如果添加订阅,则返回一个包含新建订阅对象的 201 Created
响应。
示例
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "a8e6d5e6-9f7f-497a-b97f-8ffe8f559dc7",
"expirationDateTime": "2016-04-27T16:17:57Z",
"notificationUrl": "https://91e383a5.ngrok.io/api/webhook/handlerequest",
"resource": "5c77031a-9621-4dfc-bb5d-57803a94e91d"
}
URL 验证
重要
在新订阅创建之前,SharePoint 会将请求的查询字符串中包含验证令牌的请求发送到提供的通知 URL。 服务必须通过返回验证令牌来响应此请求。 如果服务无法以这种方式验证请求,则不会创建订阅。**
示例
{
return new OkObjectResult(req.Query["validationtoken"].ToString());
}