EWS 管理 API - 有没有办法从日历中获取已删除的事件?
EWS manages APIs - Is there a way to get deleted events from a calendar?
我正在编写一个客户端来将用户邮箱的所有项目(包括日历、联系人)与我的应用程序同步。在这里我想捕获所有项目的所有创建、更新和删除。虽然 Office 365 有日历视图 API(带更改跟踪)来同步日历事件,但我仍面临以下问题:
- 使用日历视图,我们需要为事件指定一个时间范围。
- Calendarview API 以扩展形式提供重复事件。并且不提供从重复事件中删除的事件。您需要解析所有事件以找出已删除的事件。
由于上述限制,很难长时间同步日历事件。
因此,如果有人能指出以下问题的解决方案,我将不胜感激:
- 是否有 EWS API 可以从日历中获取已删除的项目(或仅获取它们的 ID)?在这里,我只想要未展开形式的事件列表。
- 有什么方法可以从重复主事件中删除事件?
- 是否有更好的方法从 Exchange 同步日历事件?
因此,如果您的应用程序可以一直(或大部分时间)运行,您可以在我从未使用过的 EWS 中使用推送、拉取或 Streaming notifications to get an event sent to your app whenever anything changes on a calendar, including deletions. (Streaming is the preferred method these days.) There also is a Sync feature,但可能在这里也适用。我的经验是,当您收到已删除的通知时,无法通过通知中的 ItemId 检索相关项目,因为它 消失了, 即使它实际上已移至已删除项目。重复会议的删除实例更难追踪,我不确定通知是否包含实际实例 ID 或主 ID。
我的最佳解决方案是:
- 使用 SyncFolderItems 将日历同步为任何其他文件夹。它 returns non-expanded 形式的所有项目。
- 要获取已删除的重复事件:将 GetItem 调用与 RecurringMasterId 和一些其他属性一起使用,例如 calendar.DeletedOccurrences.
我正在编写一个客户端来将用户邮箱的所有项目(包括日历、联系人)与我的应用程序同步。在这里我想捕获所有项目的所有创建、更新和删除。虽然 Office 365 有日历视图 API(带更改跟踪)来同步日历事件,但我仍面临以下问题:
- 使用日历视图,我们需要为事件指定一个时间范围。
- Calendarview API 以扩展形式提供重复事件。并且不提供从重复事件中删除的事件。您需要解析所有事件以找出已删除的事件。
由于上述限制,很难长时间同步日历事件。
因此,如果有人能指出以下问题的解决方案,我将不胜感激:
- 是否有 EWS API 可以从日历中获取已删除的项目(或仅获取它们的 ID)?在这里,我只想要未展开形式的事件列表。
- 有什么方法可以从重复主事件中删除事件?
- 是否有更好的方法从 Exchange 同步日历事件?
因此,如果您的应用程序可以一直(或大部分时间)运行,您可以在我从未使用过的 EWS 中使用推送、拉取或 Streaming notifications to get an event sent to your app whenever anything changes on a calendar, including deletions. (Streaming is the preferred method these days.) There also is a Sync feature,但可能在这里也适用。我的经验是,当您收到已删除的通知时,无法通过通知中的 ItemId 检索相关项目,因为它 消失了, 即使它实际上已移至已删除项目。重复会议的删除实例更难追踪,我不确定通知是否包含实际实例 ID 或主 ID。
我的最佳解决方案是:
- 使用 SyncFolderItems 将日历同步为任何其他文件夹。它 returns non-expanded 形式的所有项目。
- 要获取已删除的重复事件:将 GetItem 调用与 RecurringMasterId 和一些其他属性一起使用,例如 calendar.DeletedOccurrences.