7

Exchange 웹 서비스를 사용하여 일정 데이터에 액세스하려고하지만 기본 일정이 아닌 다른 사용자가 공유 한 일정에 액세스하는 방법을 파악할 수 없습니다. 내 회사의 다른 사용자가 공유 캘린더를 만들어서 나와 공유했다고 가정하면 캘린더 폴더를 찾을 수조차 없으며 그 안에 항목을 가져올 수 없습니다.EWS : 공유 일정에 액세스

답변은 EWS Managed API (버전 1.0 또는 1.1), 서비스 개체, 또는 서버로 보내야하는 SOAP 메시지의 XML 본문에 대해서만 가능합니다. 나는 일종의 출발점이 필요하다. 어떤 도움이라도 대단히 감사하겠습니다.

답변

3

문제가되는 폴더의 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 

참고 : 나는 그것을 할 관리 방법은 다음과

+4

나는 그것이 왜 필요한지 알지 못합니다. EWS에 대해 잊어 버리고 다른 직원의 루트 폴더에 대한 읽기 권한이 없지만 Outlook에서 나와 공유 폴더를 만들고 공유하면 볼 수 있습니다. 폴더를 자동으로 공유하여 루트 폴더에 대한 읽기 권한을 부여합니까? 그렇지 않은 경우 Outlook에서 공유 일정은 볼 수 있지만 EWS는 볼 수없는 이유는 무엇입니까? –

7

입니다 기본 일정이 유일한 작품 그게 내가 내 요구 사항

편집에 필요한 모든 같이 : 기본이 아닌 달력을 가지고 당신은 ExchangeService.FindFolders 방법을 들여다 보았습니다. 시도하지는 않았지만 루트받은 편지함 액세스가 필요하지 않을 수도 있습니다.

+1

감사합니다. Seph,하지만 제 질문에 언급했듯이 공유되지 않은 공유 달력에 액세스해야합니다. –

+1

내 대답을 편집했습니다. 도움이되는지 확인해보십시오. 사용자가 공유 캘린더를 자동으로 구독하도록하는 방법도 있습니다. 사용자 측에서이 사용자의 folderID가 무엇인지 서버에 알려주십시오. 이렇게하면 루트 액세스가 필요하지 않습니다. 사서함에 – Seph

+0

ExchangeService.Credentials 계정에 필요한 사용 권한/역할은 무엇입니까? – Brent

1

원래 게시물의 몇 년 후이지만 비슷한 문제가있는 사람들을 돕기 위해 this을 확인하십시오.

EWS API의 WellKnownFolderName.PublicFoldersRoot를 사용하여 공용 폴더에 액세스하고 FolderId를 사용하여 요청 된 하위 폴더를 탐색합니다.