将Office365REST日历ID映射到EWS日历项 ID

使用 Exchangepush notifications我一直在创建一个服务,该服务可同步来自 Office365 用户的日历数据。我一直在使用Office365 Calendar REST API(用于获取和管理日历)和 EWS API(用于订阅日历更改)的组合。

使用 Exchangepush notifications我一直在创建一个服务,该服务可同步来自 Office365 用户的日历数据。我一直在使用Office365 Calendar REST API(用于获取和管理日历)和 EWS API(用于订阅日历更改)的组合。

我注意到最近 MS 为他们的订阅端点引入了一个预览 API。但是,此 API 仍处于预览模式,我想暂时避免使用它。

一旦我有了一切设置,问题是我不能使calendar event resource (REST)EWS CalendarItem resource之间的关联,在推送通知返回。ItemId的 CalendarItem 和Id的 REST 事件不同。

当尝试更新我从 REST API 保存的事件时,这证明是有问题的,因为我找不到一个好的方法将两者关联起来。

任何帮助非常感谢!

编辑经过进一步的挖掘,我实际上发现从 REST API(GET /calendars)返回的日历似乎是 EWS 层次结构中的Message项。因此,该端点不是返回实际的 Folder ID,而是返回属于某个名为“Common Views”的文件夹的 Item ID。

我不知道为什么事情是这样设计的,但是 base64 编码的 ID 的差异似乎很小。

8

因此,事实证明,由于通过Exchange2007版本订阅 EWS 推送通知,我的 ID 不匹配。Exchange2007_SP1和更高版本具有相互兼容的 EwsIds,因此这包括 Office365。

-字符替换为/,将_字符替换为+,可以正确调用 Office365 API 资源。

最后,当调用get calendars时,API 实际上返回了Common Views文件夹下的Message项目类型。因此,当尝试将这些 ID 用于订阅时,EWS API 会抱怨我已向其发送了 ItemID 而不是 Folder ID。

谢天谢地我发现,通过GET /calendars/ews_folder_id向 REST API 发出请求实际上是有效的,一旦您将 ID 正确转换为 URI 安全类型(请参见上面的转换)。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(885)
仅CSS动画-如何填充svg心脏图标
上一篇
如何编写RoomDao查询以基于Android中单个表中的可选mulitplecoulmns搜索唯一数据
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(82条)