Microsoft Graph Webhook/Subscription,获取多个 post 到我的 notificationUrl
Microsoft Graph Webhook/Subscription, getting multiple post to my notificationUrl
我正在尝试通过 Microsoft Graph 接收有关日历事件的推送通知
notificationURL 指向 运行ning on NodeJS
的网络服务
我的订阅有这些选项。
{
"changeType": "created,updated,deleted",
"notificationUrl": "myurl",
"resource": "users/userid/events?$filter=sensitivity%20eq%20%27Normal%27",
"expirationDateTime":"2016-11-05T18:23:45.9356913Z",
"clientState": "customclientstate"
}
但是,每当更改单个事件时,我都会收到来自订阅的多个 POST 调用(2~4)(所有调用都具有相同的主体)。
只有一个订阅处于活动状态,一个日历,我正在响应状态代码为 204 的请求,没有任何内容(已通过邮递员测试)。
这是个大问题,因为每当有请求时我都会更新数据库。
有人 运行 遇到过这个问题吗?我一直在寻找,没有任何结果。
任何输入将不胜感激!! =).
我也有同样的问题。在办公室日历中创建新事件时,我每次都会收到一条 ChangeType: Created
的通知,同时收到三条 ChangeType: Updated
的通知。当我在办公室取消活动时,我总是收到 3 条更新通知,最后收到 1 条 ChangeType: Deleted
.
您在这里可以做的是使用 ChangeKey 验证。每次从办公室收到新通知时,您都必须从 API 请求该事件,对吧?
获取该事件后,您可以检查 event.ChangeKey 属性 是否已更改。
和网站中的etag一样。如果内容发生变化,etag 哈希也会发生变化。
因此,当您收到 Created
通知时,获取该事件的 ChangeKey 并将其存储到数组或数据库中,每当您收到通知时,请记住验证您是否已经在数组或数据库中拥有该事件的 ID,以及 ChangeKey 是否已存在已经改变。如果 ChangeKey 与上次相同,则无需在数据库中更新该事件。
这也适用于重复发生的事件,即使一次发生改变了 SeriesMaster 事件的 ChangeKey 也会改变。
我正在尝试通过 Microsoft Graph 接收有关日历事件的推送通知
notificationURL 指向 运行ning on NodeJS
的网络服务我的订阅有这些选项。
{
"changeType": "created,updated,deleted",
"notificationUrl": "myurl",
"resource": "users/userid/events?$filter=sensitivity%20eq%20%27Normal%27",
"expirationDateTime":"2016-11-05T18:23:45.9356913Z",
"clientState": "customclientstate"
}
但是,每当更改单个事件时,我都会收到来自订阅的多个 POST 调用(2~4)(所有调用都具有相同的主体)。
只有一个订阅处于活动状态,一个日历,我正在响应状态代码为 204 的请求,没有任何内容(已通过邮递员测试)。
这是个大问题,因为每当有请求时我都会更新数据库。
有人 运行 遇到过这个问题吗?我一直在寻找,没有任何结果。
任何输入将不胜感激!! =).
我也有同样的问题。在办公室日历中创建新事件时,我每次都会收到一条 ChangeType: Created
的通知,同时收到三条 ChangeType: Updated
的通知。当我在办公室取消活动时,我总是收到 3 条更新通知,最后收到 1 条 ChangeType: Deleted
.
您在这里可以做的是使用 ChangeKey 验证。每次从办公室收到新通知时,您都必须从 API 请求该事件,对吧?
获取该事件后,您可以检查 event.ChangeKey 属性 是否已更改。
和网站中的etag一样。如果内容发生变化,etag 哈希也会发生变化。
因此,当您收到 Created
通知时,获取该事件的 ChangeKey 并将其存储到数组或数据库中,每当您收到通知时,请记住验证您是否已经在数组或数据库中拥有该事件的 ID,以及 ChangeKey 是否已存在已经改变。如果 ChangeKey 与上次相同,则无需在数据库中更新该事件。
这也适用于重复发生的事件,即使一次发生改变了 SeriesMaster 事件的 ChangeKey 也会改变。