Microsoft graph api Microsoft图表日历CTAG/Changekey未更改

Microsoft graph api Microsoft图表日历CTAG/Changekey未更改,microsoft-graph-api,Microsoft Graph Api,我正在尝试使用图形API将365日历约会与我们的内部CRM软件日历同步,但是日历上的CTAG或changekey不会更改,以表示无论我在365上创建/更改/删除了多少事件,都已进行了更新 理想情况下,我只需要执行一个列表日历API调用,它返回日历列表和CTAG/ChangeKey,这样我就知道哪些日历已经更新了。我真的不想每次同步都要获取所有事件并比较单个ETAG/changekeys 通过自定义脚本和使用Microsoft Graph Explorer尝试,无论我在日历中做了多少更改,每次都有

我正在尝试使用图形API
365日历
约会与我们的内部CRM软件日历同步,但是日历上的
CTAG
changekey
不会更改,以表示无论我在365上创建/更改/删除了多少事件,都已进行了更新

理想情况下,我只需要执行一个列表日历API调用,它返回日历列表和CTAG/ChangeKey,这样我就知道哪些日历已经更新了。我真的不想每次同步都要获取所有事件并比较单个ETAG/changekeys

通过自定义脚本和使用Microsoft Graph Explorer尝试,无论我在日历中做了多少更改,每次都有相同的JSON响应

GEThttps://graph.microsoft.com/v1.0/users/4d591251-dd02-4bb8-9e80-9c66c526c7fe/calendars/

 {
     "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('4d591251-dd02-4bb8-9e80-9c66c526c7fe')/calendars",
     "value": [
         {
             "id": "AAMkADFmODMyZWEwLWFmNjQtNDUyMS04YTk4LTFmZGViNzkyZWQyZQBGAAAAAABre3wS1gY0TIgCJhhYQAL5BwDZKoqjQvz8SoX7OCU5oF96AAAAYg1SAABRW8zpitFfR41s0yU_eudNAAlt2l4DAAA=",
             "name": "Calendar",
             "color": "auto",
             "changeKey": "ZqOtKvQcnUym2xGHcFiCNQAC7AE=",
             "canShare": true,
             "canViewPrivateItems": true,
             "canEdit": true,
             "owner": {
                 "name": "Liam Hill",
                 "address": "liam@contoso.com"
             }
         }
     ] 
 }

您希望更改的changeKey将在此端点反映出来:

此外,如果您想跟踪日历中在特定时间段内发生的任何更改,则应使用增量查询,在本例中使用的资源将是CalendarView,它还需要一个日期范围。


如果您需要一个工作示例,或者您的需求是其他的,请告诉我。

日历的
changeKey
仅告诉您日历资源本身是否已更改(即,他们重命名了日历),而不是它包含的事件。这有点奇怪,因为CalDAV文档说明:“日历ctag就像一个资源etag;当日历中的任何内容发生更改时,它会更改。这允许客户端应用程序快速确定它不需要同步任何更改的事件。“如果ctag没有更改,这意味着您需要检查每个日历中的每个相关事件,以确定是否已进行了更改。当您谈论1000个日历时,这对系统是一个严重的打击。@Marclafler有没有更好的方法来识别有已更新事件的日历?例如,如果我有1000个calendars,在不不断地敲打API检索事件列表的情况下,识别哪些事件需要同步的最佳方法是什么?您看过吗?