我嘗試使用Exchange Web服務訪問日曆數據,但似乎無法弄清楚如何訪問其他用戶在不是其默認日曆時共享的日曆。假設我公司的其他用戶創建了共享日曆並與我共享,我甚至找不到日曆文件夾,更不用說獲取其中的項目了。EWS:訪問共享日曆
答案可以根據EWS Managed API(版本1.0或1.1),服務對象直接提供,或者甚至只是需要發送到服務器的SOAP消息的XML正文。我只需要某種起點。任何幫助將不勝感激。
我嘗試使用Exchange Web服務訪問日曆數據,但似乎無法弄清楚如何訪問其他用戶在不是其默認日曆時共享的日曆。假設我公司的其他用戶創建了共享日曆並與我共享,我甚至找不到日曆文件夾,更不用說獲取其中的項目了。EWS:訪問共享日曆
答案可以根據EWS Managed API(版本1.0或1.1),服務對象直接提供,或者甚至只是需要發送到服務器的SOAP消息的XML正文。我只需要某種起點。任何幫助將不勝感激。
這很複雜,因爲您需要相關文件夾的FolderId。除了訪問日曆文件夾外,您還需要讀取郵箱的根文件夾。這使您可以執行FindFolder操作來檢索該ID。
下面是如何成功地做到這一點:
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方法,我沒有嘗試,但這可能不需要根收件箱訪問。
我知道這是幾年後的原始帖子,但只是爲了幫助有類似問題的人,看看this。
它使用EWS API的WellKnownFolderName.PublicFoldersRoot訪問公用文件夾並使用FolderId瀏覽到請求的子文件夾。
如果你需要用Java來做到這一點,那麼這裏的答案可能會有所幫助。 Office365 API - Admin accessing another users/room's calendar events。它有一個可用的代碼示例。在MS獲得Azure V2.0 REST API工作之前,這是實現它的方法。
我不明白爲什麼這將是必要的。忘記EWS,如果我沒有讀取其他員工的根文件夾的權限,但他們創建了一個共享文件夾並通過Outlook與我分享,我可以看到它。他們共享文件夾是否會自動讓我讀取其根文件夾?如果沒有,爲什麼Outlook能夠查看共享日曆但不能查看EWS? – 2010-11-22 15:31:47