我正在通过webhook收听群组端点。
我通过Outlook Online + Group执行以下操作
我立刻得到了所有三个的webhook事件,这很好,我认为事情是批量的。但eventTime是相同的 - 这使得很难理解这些事件发生的顺序。所以我要求澄清resourceData.eventTime应该是相同的,还是应该是不同的。
{
"value": [
{
"changeType": "updated",
"clientState": "its_me_flow",
"resource": "Groups/7763cbdb-7f79-4b95-bb3b-d8e83413f7ad",
"resourceData": {
"@odata.type": "#Microsoft.Graph.Group",
"@odata.id": "Groups/7763cbdb-7f79-4b95-bb3b-d8e83413f7ad",
"id": "7763cbdb-7f79-4b95-bb3b-d8e83413f7ad",
"organizationId": "26e65220-5561-46ef-9783-ce5f20489241",
"eventTime": "2018-02-13T00:20:03.9107966Z"
},
"subscriptionExpirationDateTime": "2018-02-13T04:07:19.7318815+00:00",
"subscriptionId": "c8c521bf-2bcb-4b93-821f-40a1fb72c0f8"
},
{
"changeType": "updated",
"clientState": "its_me_flow",
"resource": "Groups/7763cbdb-7f79-4b95-bb3b-d8e83413f7ad",
"resourceData": {
"@odata.type": "#Microsoft.Graph.Group",
"@odata.id": "Groups/7763cbdb-7f79-4b95-bb3b-d8e83413f7ad",
"id": "7763cbdb-7f79-4b95-bb3b-d8e83413f7ad",
"organizationId": "26e65220-5561-46ef-9783-ce5f20489241",
"eventTime": "2018-02-13T00:20:03.9107966Z",
"owner@delta": [
{
"id": "36e3b856-3c2e-4605-ac5f-99064d229c3a"
}
]
},
"subscriptionExpirationDateTime": "2018-02-13T04:07:19.7318815+00:00",
"subscriptionId": "c8c521bf-2bcb-4b93-821f-40a1fb72c0f8"
},
{
"changeType": "updated",
"clientState": "its_me_flow",
"resource": "Groups/7763cbdb-7f79-4b95-bb3b-d8e83413f7ad",
"resourceData": {
"@odata.type": "#Microsoft.Graph.Group",
"@odata.id": "Groups/7763cbdb-7f79-4b95-bb3b-d8e83413f7ad",
"id": "7763cbdb-7f79-4b95-bb3b-d8e83413f7ad",
"organizationId": "26e65220-5561-46ef-9783-ce5f20489241",
"eventTime": "2018-02-13T00:20:03.9107966Z",
"members@delta": [
{
"id": "36e3b856-3c2e-4605-ac5f-99064d229c3a"
},
{
"id": "9b47aca9-efc6-488c-8afd-c323eccad4b4"
}
]
},
"subscriptionExpirationDateTime": "2018-02-13T04:07:19.7318815+00:00",
"subscriptionId": "c8c521bf-2bcb-4b93-821f-40a1fb72c0f8"
}
]
}
看到eventTime是完全相同的。从所有者@ delta和members @ delta的外观来看,订单是正确的,但是我可以信任该数组顺序吗?如果eventTime是顺序的,那就更喜欢了。
答案 0 :(得分:0)
这类似于通过Delta Query接收更改页面,其中许多对象可以包含在单个页面中,并且页面中已更改对象的顺序遵循某种逻辑顺序。 (例如:在您的情况下,所有者添加后跟成员添加)。
由于webhooks无法保证事件的排序,因此eventTime旨在帮助订购在不同时间点接收的事件页面。例如:Microsoft图形尝试在时间T1和T2发送更改P1和P2的页面。但是,目标webhook端点在时间T1处于关闭状态,因此Microsoft图形将以指数延迟重试最多4小时。虽然webhook端点可能在时间T2可用。因此,首先接收页面P2,然后在这种情况下接收P1。为了帮助客户端区分和排序事件,可以使用eventTime字段。