将从 Office 365 REST API 返回的日历 ID 映射到 EWS API 返回的日历 ID

Mapping ID of Calendars as returned from Office 365 REST API to that returned by EWS API

我正在尝试找到一种方法 map/convert 从 Office 365 REST API (GET /calendars) 返回的 ID 到从 EWS 返回的 ID(在 DistinguishedFolderId=[=35 上列出文件夹=]) 或反之亦然。

我注意到对于同一日历,从 Office 365 API 返回的 ID 与从 EWS API 返回的不同。

Office 365 API - 
"AAMkADRlYTIyZTNiLWQ1ZjQtNGQwOS1hOGYzLTFjY2NkYzM4MzA2NwBGAAAAAAAhWNzR1hCyToyWVDoyJaPGBwAPTshXMc1wTqPkmdHO8phYAAAAAAEGAAAPTshXMc1wTqPkmdHO8phYAAB-AHbjAAA="

EWS API - 
"AAMkADRlYTIyZTNiLWQ1ZjQtNGQwOS1hOGYzLTFjY2NkYzM4MzA2NwAuAAAAAAAhWNzR1hCyToyWVDoyJaPGAQAPTshXMc1wTqPkmdHO8phYAAB/AHL6AAA="

我想不出将两者联系起来的方法。我想在这些之间有一个明确的mapping/conversion。

编辑 1: 事实证明,在 EWS 上使用时从 Office 365 REST API 返回的 Id(将 '-' 替换为 '/' 并将 '_' 替换为 '+' 后)对应于类型 'Message' 在一些 'Common Views' 文件夹下。这看起来是一个奇怪的设计。 上面提到的替换是否足够?或者还有其他字符需要替换?

P.S:

  1. 我已经提到了 ID 的长度不同)。
  2. 我在 ConvertId 操作上看到了这个 doc。但我无法理解如何在这种情况下应用它。因为我使用的 ID "RequestServerVersion Version="Exchange2010" 也应该是 Office 365 API 的版本。

我找到了一种方法 mapping/associating 从 Office 365 REST 和 EWS API 返回的日历 ID。

使用 EWS GET Folder API 和 DistinguishedFolderId="calendar" 获取日历的文件夹 ID。 调用 EWS 列表文件夹 API 以获取 Exchange 上的所有其他日历。

现在,将这些 ID 映射到从 Office 365 返回的 ID: 对于上面返回的每个日历,调用 Office 365 REST API(/calendar/{id})。 此 API returns 来自 Office 365 的对应日历具有新的 Id(即相同的 Office 365 标识符)。有趣的是,这个Id对应的是EWS上"Common Views"文件夹下的一个消息项。

虽然,它通过试用工作,但我找不到任何解释这一点的 MS 文档。

有人知道这种行为吗?