【问题标题】:EWS manages APIs - Is there a way to get deleted events from a calendar?EWS 管理 API - 有没有办法从日历中获取已删除的事件?
【发布时间】:2017-02-10 12:50:34
【问题描述】:

我正在编写一个客户端来将用户邮箱的所有项目(包括日历、联系人)与我的应用程序同步。在这里,我想捕获所有项目的所有创建、更新和删除。虽然 Office 365 有 calendarview API(带有更改跟踪)来同步日历事件,但我也面临以下问题:

  1. 使用日历视图,我们需要指定事件的时间范围。
  2. Calendarview API 以扩展形式提供重复事件。并且不会从重复事件中删除已删除的事件。您需要解析所有事件以找出已删除的事件。

由于上述限制,很难长时间同步日历事件。

因此,如果有人能指出以下解决方案,我将不胜感激:

  1. 是否有 EWS API 可以从日历中获取已删除的项目(或仅获取它们的 ID)?在这里,我只想要非扩展形式的事件列表。
  2. 有什么方法可以从重复主事件中删除事件?
  3. 有更好的方式从 Exchange 同步日历事件吗?

【问题讨论】:

    标签: calendar exchangewebservices office365api


    【解决方案1】:

    因此,如果您的应用程序可以一直运行(或大部分时间),您可以使用 Push、Pull 或 Streaming 通知在日历发生任何变化(包括删除)时将事件发送到您的应用程序. (现在流媒体是首选方法。)EWS 中还有一个我从未使用过的Sync feature,但在这里也可能适用。我的经验是,当您收到已删除的通知时,通知中的 ItemId 无法检索有问题的项目,因为它已经消失了,即使它实际上已被移动到已删除的项目中。重复会议的删除实例更难追踪,我不确定通知中是否包含实际实例 ID 或主 ID。

    【讨论】:

    • 问题是,我无法一直运行我的应用程序,因此无法使用流式通知。感谢您推荐同步功能,我试过了,它可以用来同步日历项目。
    【解决方案2】:

    我对此的最佳解决方案是:

    1. 使用 SyncFolderItems 将日历与任何其他文件夹同步。它以非展开形式返回所有项目。
    2. 要删除重复事件的发生:使用 GetItem 调用与 RecurringMasterId 和一些其他属性,如 calendar.DeletedOccurrences。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 2021-06-02
      • 2023-02-02
      • 1970-01-01
      • 2020-05-08
      相关资源
      最近更新 更多