使用Office365 push notifications,我已经创建了一项服务,可以同步来自Exchange用户的日历数据。我一直在使用Office365 Calendar REST API (用于获取和管理日历)和EWS API (用于订阅日历更改)的组合。
我注意到最近微软为他们的订阅端点引入了一个预览API。但是,此API仍处于预览模式,我想暂时避免使用它。
一旦我完成了所有的设置,问题是我无法在推送通知中返回的calendar event resource (REST)和EWS CalendarItem resource之间建立关联。CalendarItem的ItemId
和REST事件的Id
不同。
当尝试更新我从REST API保存的事件时,这被证明是有问题的,因为我找不到将两者关联的好方法。
任何帮助都是非常感谢的!
EWS Edit经过进一步的研究,我发现从REST API (GET /calendars
)返回的日历似乎是层次结构中的项。因此,它返回的不是实际的文件夹in,而是属于某个名为"Common Views“的文件夹的项目in。
我不确定为什么事情是这样设计的,但base64编码的ID之间的差异似乎非常小。我还是想不出一个好办法来把这两者联系起来。
发布于 2015-05-13 03:39:49
因此,我的it不匹配是因为通过Exchange2007
版本订阅了EWS推送通知。Exchange2007_SP1
和beyond都有相互兼容的EwsIds,所以这也包括Office365。
将-
字符替换为/
字符,将_
字符替换为+
字符,这样我就可以正确地调用Office365应用编程接口资源。
最后,当调用get calendars时,它实际上返回的是Common Views
文件夹下的Message
项类型。因此,当尝试使用这些ID进行订阅时,EWS API会抱怨我发送给它的是ItemID而不是文件夹ID。
谢天谢地,,我发现,一旦你正确地将ID转换为URI安全类型(参见上面的转换),通过GET /calendars/ews_folder_id
向REST API发出请求实际上是有效的。
https://stackoverflow.com/questions/30082306
复制相似问题