Microsoft graph api 同步新日历事件始终具有@removed字段

Microsoft graph api 同步新日历事件始终具有@removed字段,microsoft-graph-api,microsoft-graph-sdks,microsoft-graph-calendar,Microsoft Graph Api,Microsoft Graph Sdks,Microsoft Graph Calendar,我正在使用@microsoft/microsoft graph clientnpm包与基本url/me/calendarview/delta同步日历事件。直到几天前它一直运转良好。出于某种原因,每当我在outlook.office.com中创建新日历事件并与我的应用程序同步时,新创建的日历事件都会设置@removed:{reason:“deleted”}字段 但是,当我使用Microsoft Graph Explorer查找同一日历事件时,同一事件没有设置@已删除的字段。是否有任何原因使新创建的

我正在使用
@microsoft/microsoft graph client
npm包与基本url
/me/calendarview/delta
同步日历事件。直到几天前它一直运转良好。出于某种原因,每当我在outlook.office.com中创建新日历事件并与我的应用程序同步时,新创建的日历事件都会设置
@removed:{reason:“deleted”}
字段

但是,当我使用Microsoft Graph Explorer查找同一日历事件时,同一事件没有设置
@已删除的
字段。是否有任何原因使新创建的日历事件看起来像是在同步过程中被删除? 我正在使用@microsoft/microsoft graph client v1.3.0

重新创建的步骤:

  • 通过发布到
    /me/calendar/events
  • 使用
    /me/calendarview/delta
    和适当的deltaLink和访问令牌获取日历事件的增量
  • 我收到1个日历事件,其中有3个字段,
    @odata.type
    id
    @removed
    。id字段与步骤1中创建的事件的id匹配
  • 如果你需要更多的信息,请告诉我。这影响了我们的一些用户


    更新:我尝试了解决此问题的方法,对增量同步中收到的每个
    @removed
    日历条目调用
    /me/events/
    ,以验证事件是否确实被删除。但是,当我通过MicrosoftGraph客户端调用该API时,它返回null。如果我通过发出相同的GET呼叫,则返回事件。

    我在此处留下了关于另一个问题的答案:

    简言之,昨天我有一种预感,我的灵感来自于,事件的startDateTime..endDateTime范围应归咎于delta

    实际上,这正是问题所在。答案分为两部分:

  • 对不在窗口中的事件的更改总是以@removed的形式显示在增量流中
  • 事件增量参数捕获在“closure”中,这意味着后续请求(使用
    $deltatoken
    )忽略
    startDateTime..endDateTime
    查询参数
  • 理解以上两方面,答案似乎是:

  • 创建足够宽的初始
    startDateTime..endDateTime
    窗口,以满足应用程序的需要
  • 以定义的时间间隔启动新的事件增量流(不提供
    $deltatoken
    ),而不是无限期地重复使用同一个事件增量流

  • 您可以添加一个示例,说明您从Graph Explorer获得的信息吗?我在使用MS Graph的改进2实现时遇到了相同的问题。您找到解决方案或解决方法了吗?对我来说,只有当新事件超出增量请求的开始-结束时间范围时,才会发生这种情况。您好,我收到了相同的错误,尽管事件没有在日历中真正删除。那么,幸运吗?我从未找到解决方案,我在更新中实施了我的解决方案后继续前进。注意,我从未在delta请求中提供像@mattlaabs这样的开始-结束时间帧,只是使用了delta链接