Как получить доступ к BusyStatus общего календаря Outlook с ограниченными разрешениями? - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь прочитать AppointmentItem.BusyStatus из общего календаря с ограниченным доступом.Я вижу BusyStatus весь день / неделю, но у меня нет доступа к такой информации, как тема или место встречи.

Мой код выглядит следующим образом:

СначалаЯ получаю папку, в которой хранятся общие календари.

oApp = new Outlook.Application();
mapiNamespace = oApp.GetNamespace("MAPI");
Outlook.Recipient oRep = mapiNamespace.CreateRecipient(oApp.Session.CurrentUser.Name);
calendarsFolder = mapiNamespace.GetSharedDefaultFolder(oRep, Outlook.OlDefaultFolders.olFolderCalendar).Folders;  

На следующем шаге я перебираю все календари и элементы их встреч.

foreach(Outlook.Folder calendar in calendarsFolder){
   Console.WriteLine(calendar.Name);
   foreach(Outlook.AppointmentItem item in calendar.Items){
      Console.WriteLine(item.Start.ToString("dd.MM.yyyy"));
      Console.WriteLine(item.BusyStatus);
   }
}

Этот код отлично работает в календаре, который дает мне полный контроль над прочтением любых деталей, которые могут быть у встречи.Это не работает в календаре с ограниченным доступом, хотя.После отладки своего кода я обнаружил, что список calendar.Items этого конкретного календаря пуст, его число равно 0 .Я предполагаю, что это связано с тем, что у меня нет необходимых полномочий для получения этой информации, так как я мог бы прочитать тему и местоположение, если бы получил пункты назначения.Однако это всего лишь предположение, и я, честно говоря, не совсем уверен, что происходит.Нужен ли мне совершенно другой подход или я что-то упускаю?Я был бы очень признателен, если бы кто-нибудь смог мне помочь.

1 Ответ

0 голосов
/ 24 января 2019

Вместо этого используйте Recipient.FreeBusy - для него не требуются права доступа к почтовому ящику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...