当前位置: 首页 > 知识库问答 >
问题:

将 Office365 REST 日历 ID 映射到 EWS 日历项 ID

姜宏放
2023-03-14

使用Exchange推送通知,我一直在创建一个服务,它可以同步Office365用户的日历数据。我一直在使用Office365日历REST API(获取和管理日历)和EWS API(订阅日历更改)的组合。

我注意到,就在最近,MS为其订阅endpoint引入了预览API。然而,这个API仍然处于预览模式,我想暂时避免使用它。

一旦我完成了所有设置,问题是我无法在日历事件资源(REST)和推送通知中返回的EWS CalendarItem资源之间建立关联。CalendarItem的<code>ItemId</code>和REST事件的<code>Id</ccode>不同。

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

非常感谢您的帮助!

编辑 经过进一步的挖掘,我实际上发现从 REST API(GET /calendars)返回的日历似乎是 EWS 层次结构中的消息项。因此,此终结点不会返回实际的文件夹 ID,而是返回属于名为“公共视图”的某个文件夹中的项 ID。

我不知道为什么事情是这样设计的,但是Bas64编码ID的差异似乎非常小。我只是仍然找不到将两者关联起来的好方法。

共有1个答案

羊舌高爽
2023-03-14

结果发现,由于通过Exchange2007版本订阅EWS推送通知,我的ID不匹配Exchange2007_SP1及更高版本具有彼此兼容的EwsId,因此这包括Office365。

- 字符替换为 /_ 字符,使我能够正确调用 Office365 API 资源。

最后,当调用获取日历时,API实际上是返回< code>Common Views文件夹下的< code>Message项目类型。所以当试图使用这些ID进行订阅时,EWS API会抱怨我发送给它的是ItemIDs而不是文件夹ID。

谢天谢地,我发现通过GET/calendars/ews_folder_id向REST API发出请求实际上可以在将id正确转换为URI安全类型后工作(请参见上面的转换)。

 类似资料:
  • 我是EWS管理API的新手。我想知道是否有任何方法可以将使用EWS API的exchange日历导出到ics文件中。我搜索并找到了创建和检索日历项的方法,但找不到导出日历的方法。非常感谢任何帮助

  • 我目前正在尝试这样做,当我在日历视图中选择一天时,该天的所有事件都会列出。我很难让它显示一天中的所有事件(看起来它在上午12点到11点59分不起作用?)。这里是我目前拥有的。 和 如果我有12am-11:59am的事件1和12pm-11:59pm的事件2,则仅列出事件2。

  • 我们针对Office365使用Exchange Web服务(EWS)API在用户的日历中创建日历事件。这对于内部部署很好,但是对于Office365部署,我们似乎很快就遇到了限制。 创建16个事件后,在16个不同用户的日历中(来自服务帐户,使用对日历的委托访问权),我们收到以下错误: null 有没有人知道克服这种限制的方法,例如,我们可以调用关闭office365端的缓存邮箱会话?或者房间里是否

  • 日历组件用来选择年月日,可以代替系统原生的日历组件,提供更统一的视觉和交互以及更好的兼容性。日历组件需要初始化才能使用,最简单的方式是通过一下JS代码来初始化,绑定到一个input元素上: $("#my-input").calendar({     value: ['2015-12-05'] }); 当你点击input元素后,会自动弹出一个JS生成的日历组件。当用户选择日期之后,input的值

  • Rustam帮助Arshaw建造了一个非常棒的角度模块!过来看。与Angular 7一起工作。 我以前在实现下面的FullCalendar时遇到问题。我想你们也需要更新一下。 如何使用Angular 5正确实现fullcalendar而不出现任何错误?我试图将其实现到一个特定的组件中。我安装了以下软件包 jquery 仅供参考,下面的帖子是我找到的最接近解决方案。我遵循了指令,但仍然出现了“JQu

  • 问题内容: 我正在编写一个需要向Android日历中添加一些事件的应用程序。对于插入,我只使用了以下代码: 现在,我想知道是否有可能获得与该事件关联的ID,以这种方式在插入事件并将其ID保存到我的应用程序后,用户可以直接从应用程序内部调用该事件。可能吗? 问题答案: 我提取了用于将事件存储到android日历中的列的列表。这里的清单: [0]“ originalEvent”(id = 830007