6

我目前正在处理一个 Exchange Online 集成项目,我们正在使用 Microsoft Graph API 1.0 将用户的日历复制到我们的系统中。到目前为止它一直运行良好,但今天我遇到了一个我无法解决的问题:

您如何跟踪重复发生的日历事件的删除?

我曾尝试使用“Delta”链接但没有成功。这些请求只返回系列主数据以及所有剩余的事件。

例如第一个请求:

GET /v1.0/users/dc7f4032-5f30-4441-a165-428aed9fb471/calendarview/delta?startdatetime=2019-04-11T00:00:00&enddatetime=2019-04-28T23:59:59

然后我请求 nextLink 以便获得 deltaLink,然后我请求 deltaLink:

GET /v1.0/users/dc7f4032-5f30-4441-a165-428aed9fb471/calendarview/delta?$deltatoken=uwMsonT1N46Me49CO...(etc.)

然后我得到回应:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(event)",
    "@odata.deltaLink": "https://graph.microsoft.com/v1.0/users/dc7f4032-5f30-4441-a165-428aed9fb471/calendarview/delta?$deltatoken=uwMsonT1N46Me49COq9SDw0t_wB0xaeZEqH3MS63rea577XfZFFdjg0jwU6FzfSp9LnqeqbpBGm2ppJDuDiIP280MEFjk2Q9GYyNNdCAP__CjSKSGFQ9WKmL3TPyFeXhhYE9KgmWHF1cSrx7OYBT7zPrgwY0x5peeyjBEtqkAueuE2Pb8DH4iODU-vAp-lHVOzPmkkjNyef1NTNkgNv-kg.oOHzptXCwEphbnI7YFO7saexZ_c0hZj1a0o4ZjluzUU",
    "value": []
}

只要日历中没有任何变化,对 deltaLink 的后续调用将继续返回:“value”:[]。

然后我删除了一系列事件中的一个,然后再次请求 deltaLink,然后 MS Graph API 仅返回主节点以及原始时间跨度内的所有剩余事件,而没有任何已删除事件的痕迹!

有没有遇到同样问题的人?

4

0 回答 0