1
効率を高めるために、システムをポーリングからwebhooksサブスクリプションとデルタクエリを使用するようにアップグレードしました。Microsoft Graphは作成/削除のために多くの不必要な通知を送信します
しかし、ウェブフックの場合、私は不必要な/偽の通知をたくさん得ていることを知っています。
たとえば、ユーザがイベントをキャンセルした場合、通知は複数のupdate
と表示され、そのあとにはdeleted
通知が1秒間で送信されます。
これは、(作業キューが空であれば)通知に即座に反応できるのではなく、スロットル/デバウンスを追加しなければならないという状況を作り出すので、非常に面倒ですウェブフックからのより正確な読み取り。次のように
も更新を招く削除の例は:
[2017-06-28T23:17:40.657Z][meetingroom1.outlookDidNotify] Received notification {
"subscriptionId": "54c27b11-c2e2-4962-89dd-cf316bf3eecb",
"subscriptionExpirationDateTime": "2017-06-28T23:59:59.999+00:00",
"changeType": "updated",
"resource": "Users/f4a2ac63-ddf7-40dc-80da-4e05acf6488a/Events/AAMkADc1MWNjZWM3LTNhZDYtNGYwYi04OWYxLTU0N2E0MmI5YTE4MwBGAAAAAAAKhIOGniPIR6bsTEhp5zDzBwAPLFcVBl_pRZA4tM1jHR47AAAAAAENAAAPLFcVBl_pRZA4tM1jHR47AAD5gM31AAA=",
"resourceData": {
"@odata.type": "#Microsoft.Graph.Event",
"@odata.id": "Users/f4a2ac63-ddf7-40dc-80da-4e05acf6488a/Events/AAMkADc1MWNjZWM3LTNhZDYtNGYwYi04OWYxLTU0N2E0MmI5YTE4MwBGAAAAAAAKhIOGniPIR6bsTEhp5zDzBwAPLFcVBl_pRZA4tM1jHR47AAAAAAENAAAPLFcVBl_pRZA4tM1jHR47AAD5gM31AAA=",
"@odata.etag": "W/\"DwAAABYAAAAPLFcVBl+pRZA4tM1jHR47AAD+zvOL\"",
"id": "AAMkADc1MWNjZWM3LTNhZDYtNGYwYi04OWYxLTU0N2E0MmI5YTE4MwBGAAAAAAAKhIOGniPIR6bsTEhp5zDzBwAPLFcVBl_pRZA4tM1jHR47AAAAAAENAAAPLFcVBl_pRZA4tM1jHR47AAD5gM31AAA="
},
"clientState": "…"
}
[2017-06-28T23:17:40.658Z][meetingroom1.outlookDidNotify] Received notification {
"subscriptionId": "54c27b11-c2e2-4962-89dd-cf316bf3eecb",
"subscriptionExpirationDateTime": "2017-06-28T23:59:59.999+00:00",
"changeType": "deleted",
"resource": "Users/f4a2ac63-ddf7-40dc-80da-4e05acf6488a/Events/AAMkADc1MWNjZWM3LTNhZDYtNGYwYi04OWYxLTU0N2E0MmI5YTE4MwBGAAAAAAAKhIOGniPIR6bsTEhp5zDzBwAPLFcVBl_pRZA4tM1jHR47AAAAAAENAAAPLFcVBl_pRZA4tM1jHR47AAD5gM31AAA=",
"resourceData": {
"@odata.type": "#Microsoft.Graph.Event",
"@odata.id": "Users/f4a2ac63-ddf7-40dc-80da-4e05acf6488a/Events/AAMkADc1MWNjZWM3LTNhZDYtNGYwYi04OWYxLTU0N2E0MmI5YTE4MwBGAAAAAAAKhIOGniPIR6bsTEhp5zDzBwAPLFcVBl_pRZA4tM1jHR47AAAAAAENAAAPLFcVBl_pRZA4tM1jHR47AAD5gM31AAA=",
"@odata.etag": "W/\"CQAAAA==\"",
"id": "AAMkADc1MWNjZWM3LTNhZDYtNGYwYi04OWYxLTU0N2E0MmI5YTE4MwBGAAAAAAAKhIOGniPIR6bsTEhp5zDzBwAPLFcVBl_pRZA4tM1jHR47AAAAAAENAAAPLFcVBl_pRZA4tM1jHR47AAD5gM31AAA="
},
"clientState": "…"
}
は、同様に第二の画分中の同じイベントに対して複数の更新通知を送信します。秒以内に、いくつかのアップデートイベントが続くことができます作成され
イベント:
[2017-06-28T15:57:45.044Z][meetingroom2.outlookDidNotify] Received notification {
"subscriptionId": "de0147cc-cdef-4141-b601-4eb32cec1377",
"subscriptionExpirationDateTime": "2017-06-28T23:59:59.999+00:00",
"changeType": "created",
"resource": "Users/97e22591-9c20-4030-a11e-102ba89741fc/Events/AAMkADFlY2YyODZiLTc1OGItNGE1Yy1iNDI1LWNjMGQ5MDRjNDU2ZABGAAAAAACfo61cAY_iTZYbfhL-JgzZBwDlDV58cGeaS7ZJcZ6ff_AvAAAAAAENAADlDV58cGeaS7ZJcZ6ff_AvAAD9hgs0AAA=",
"resourceData": {
"@odata.type": "#Microsoft.Graph.Event",
"@odata.id": "Users/97e22591-9c20-4030-a11e-102ba89741fc/Events/AAMkADFlY2YyODZiLTc1OGItNGE1Yy1iNDI1LWNjMGQ5MDRjNDU2ZABGAAAAAACfo61cAY_iTZYbfhL-JgzZBwDlDV58cGeaS7ZJcZ6ff_AvAAAAAAENAADlDV58cGeaS7ZJcZ6ff_AvAAD9hgs0AAA=",
"@odata.etag": "W/\"DwAAABYAAADlDV58cGeaS7ZJcZ6ff+AvAAD9kqa/\"",
"id": "AAMkADFlY2YyODZiLTc1OGItNGE1Yy1iNDI1LWNjMGQ5MDRjNDU2ZABGAAAAAACfo61cAY_iTZYbfhL-JgzZBwDlDV58cGeaS7ZJcZ6ff_AvAAAAAAENAADlDV58cGeaS7ZJcZ6ff_AvAAD9hgs0AAA="
},
"clientState": "…"
}
[2017-06-28T15:57:45.954Z][meetingroom2.outlookDidNotify] Received notification {
"subscriptionId": "de0147cc-cdef-4141-b601-4eb32cec1377",
"subscriptionExpirationDateTime": "2017-06-28T23:59:59.999+00:00",
"changeType": "updated",
"resource": "Users/97e22591-9c20-4030-a11e-102ba89741fc/Events/AAMkADFlY2YyODZiLTc1OGItNGE1Yy1iNDI1LWNjMGQ5MDRjNDU2ZABGAAAAAACfo61cAY_iTZYbfhL-JgzZBwDlDV58cGeaS7ZJcZ6ff_AvAAAAAAENAADlDV58cGeaS7ZJcZ6ff_AvAAD9hgs0AAA=",
"resourceData": {
"@odata.type": "#Microsoft.Graph.Event",
"@odata.id": "Users/97e22591-9c20-4030-a11e-102ba89741fc/Events/AAMkADFlY2YyODZiLTc1OGItNGE1Yy1iNDI1LWNjMGQ5MDRjNDU2ZABGAAAAAACfo61cAY_iTZYbfhL-JgzZBwDlDV58cGeaS7ZJcZ6ff_AvAAAAAAENAADlDV58cGeaS7ZJcZ6ff_AvAAD9hgs0AAA=",
"@odata.etag": "W/\"DwAAABYAAADlDV58cGeaS7ZJcZ6ff+AvAAD9kqa/\"",
"id": "AAMkADFlY2YyODZiLTc1OGItNGE1Yy1iNDI1LWNjMGQ5MDRjNDU2ZABGAAAAAACfo61cAY_iTZYbfhL-JgzZBwDlDV58cGeaS7ZJcZ6ff_AvAAAAAAENAADlDV58cGeaS7ZJcZ6ff_AvAAD9hgs0AAA="
},
"clientState": "…"
}
[2017-06-28T15:57:47.409Z][meetingroom2.outlookDidNotify] Received notification {
"subscriptionId": "de0147cc-cdef-4141-b601-4eb32cec1377",
"subscriptionExpirationDateTime": "2017-06-28T23:59:59.999+00:00",
"changeType": "updated",
"resource": "Users/97e22591-9c20-4030-a11e-102ba89741fc/Events/AAMkADFlY2YyODZiLTc1OGItNGE1Yy1iNDI1LWNjMGQ5MDRjNDU2ZABGAAAAAACfo61cAY_iTZYbfhL-JgzZBwDlDV58cGeaS7ZJcZ6ff_AvAAAAAAENAADlDV58cGeaS7ZJcZ6ff_AvAAD9hgs0AAA=",
"resourceData": {
"@odata.type": "#Microsoft.Graph.Event",
"@odata.id": "Users/97e22591-9c20-4030-a11e-102ba89741fc/Events/AAMkADFlY2YyODZiLTc1OGItNGE1Yy1iNDI1LWNjMGQ5MDRjNDU2ZABGAAAAAACfo61cAY_iTZYbfhL-JgzZBwDlDV58cGeaS7ZJcZ6ff_AvAAAAAAENAADlDV58cGeaS7ZJcZ6ff_AvAAD9hgs0AAA=",
"@odata.etag": "W/\"DwAAABYAAADlDV58cGeaS7ZJcZ6ff+AvAAD9kqbB\"",
"id": "AAMkADFlY2YyODZiLTc1OGItNGE1Yy1iNDI1LWNjMGQ5MDRjNDU2ZABGAAAAAACfo61cAY_iTZYbfhL-JgzZBwDlDV58cGeaS7ZJcZ6ff_AvAAAAAAENAADlDV58cGeaS7ZJcZ6ff_AvAAD9hgs0AAA="
},
"clientState": "…"
}
私は残念ながら、作成/削除以外の更新も追跡したいので、changeTypeでフィルタリングすることはできません。 $フィルタは会議室のリソース用のカレンダーですが、私が見ることのできるフィルタリング可能なものはありませんが、素晴らしいトリックです。 あなたの答えをありがとう、それは非常に便利ですが、私はそれがまだあなたが言及Outlookの予定表の動作のバグレポートとして関連性があるとして受け入れられるとマークすることはできません。 –