我正在尝试使用 Exchange Web 服务访问日历数据,但我似乎无法弄清楚如何访问已由其他用户共享的日历,当它不是他们的默认日历时。假设我公司的另一个用户创建了一个共享日历并与我共享,我什至找不到日历文件夹,更不用说获取其中的项目了。
答案可以是 EWS 托管 API(版本 1.0 或 1.1)、直接服务对象,甚至只是需要发送到服务器的 SOAP 消息的 XML 主体。我只需要某种起点。任何帮助将不胜感激。
我正在尝试使用 Exchange Web 服务访问日历数据,但我似乎无法弄清楚如何访问已由其他用户共享的日历,当它不是他们的默认日历时。假设我公司的另一个用户创建了一个共享日历并与我共享,我什至找不到日历文件夹,更不用说获取其中的项目了。
答案可以是 EWS 托管 API(版本 1.0 或 1.1)、直接服务对象,甚至只是需要发送到服务器的 SOAP 消息的 XML 主体。我只需要某种起点。任何帮助将不胜感激。
这是我设法做到的:
Dim _cal As New Microsoft.Exchange.WebServices.Data.FolderId(Microsoft.Exchange.WebServices.Data.WellKnownFolderName.Calendar, New Microsoft.Exchange.WebServices.Data.Mailbox(_otherAddress))
Dim _calendarView As New Microsoft.Exchange.WebServices.Data.CalendarView(_startTime.Date, _endTime.Date.AddDays(1))
For Each appointmentItem As Microsoft.Exchange.WebServices.Data.Appointment In _
service.FindAppointments( _
_cal, _
_calendarView)
Next
注意:这仅适用于默认日历,因为这是我的要求所需要的
编辑:对于非默认日历,您是否查看过ExchangeService.FindFolders方法,我没有尝试过,但这可能不需要根收件箱访问权限。
这相当复杂,因为您需要相关文件夹的 FolderId。除了访问日历文件夹之外,您还需要对邮箱的根文件夹具有读取权限。这允许您执行 FindFolder 操作来检索该 ID。
我知道这是原始帖子后的几年,但只是为了帮助有类似问题的人,看看这个。
它使用 EWS API 的 WellKnownFolderName.PublicFoldersRoot 访问公用文件夹并使用 FolderId 浏览到请求的子文件夹。
如果您需要在 Java 中执行此操作,here's and answer可能会有所帮助。Office365 API - 管理员访问其他用户/房间的日历事件。它有一个有效的代码示例。在 MS 让 Azure V2.0 REST API 工作之前,这就是实现它的方法。