7

我正在尝试使用 Exchange Web 服务访问日历数据,但我似乎无法弄清楚如何访问已由其他用户共享的日历,当它不是他们的默认日历时。假设我公司的另一个用户创建了一个共享日历并与我共享,我什至找不到日历文件夹,更不用说获取其中的项目了。

答案可以是 EWS 托管 API(版本 1.0 或 1.1)、直接服务对象,甚至只是需要发送到服务器的 SOAP 消息的 XML 主体。我只需要某种起点。任何帮助将不胜感激。

4

4 回答 4

7

这是我设法做到的:

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方法,我没有尝试过,但这可能不需要根收件箱访问权限。

于 2011-03-02T06:04:01.050 回答
3

这相当复杂,因为您需要相关文件夹的 FolderId。除了访问日历文件夹之外,您还需要对邮箱的根文件夹具有读取权限。这允许您执行 FindFolder 操作来检索该 ID。

于 2010-11-21T20:14:01.163 回答
1

我知道这是原始帖子后的几年,但只是为了帮助有类似问题的人,看看这个

它使用 EWS API 的 WellKnownFolderName.PublicFoldersRoot 访问公用文件夹并使用 FolderId 浏览到请求的子文件夹。

于 2013-10-22T08:42:05.430 回答
0

如果您需要在 Java 中执行此操作,here's and answer可能会有所帮助。Office365 API - 管理员访问其他用户/房间的日历事件。它有一个有效的代码示例。在 MS 让 Azure V2.0 REST API 工作之前,这就是实现它的方法。

于 2016-08-19T15:11:45.310 回答