2015-12-18 1 views
1

Я пытаюсь получить подробную информацию о встрече с совещания зала заседаний. Приведенный ниже код отлично работает для календаря пользователя, но когда я меняю календарь на конференц-зал (календарь ресурсов), он не возвращает всю информацию (в частности, собрание «Тема» и «Тело».Как получить подробную информацию о встрече из зала заседаний с использованием EWS

Пользователь что я использую (в части учетных данных), имеет роль «Управление обнаружением», а также «Полный доступ» к календарю комнаты, но это все равно указывает на разрешения.

Я также попытался добавить следующее олицетворение с помощью нет успеха:

ImpersonatedUserId uidSMTP = new ImpersonatedUserId(ConnectingIdType.SmtpAddress,”[email protected]"); 
service.setImpersonatedUserId(uidSMTP); 

Любые идеи были бы оценены

!
ExchangeService service = new ExchangeService(); 
ExchangeCredentials credentials = new WebCredentials(“[email protected]", “Password”); 
service.setCredentials(credentials); 
service.setUrl(new URI("https://outlook.office365.com/EWS/Exchange.asmx")); 
EmailAddress emAddr = new EmailAddress("[email protected]"); 
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String td1 = "2015-12-23 15:00:00"; 
String td2 = "2015-12-23 23:00:00"; 
Date d1 = format.parse(td1); 
Date d2 = format.parse(td2); 
CalendarView cView = new CalendarView(d1,d2); 
PropertySet prop = new PropertySet(); 
cView.setPropertySet(prop); 
FolderId folderId = new FolderId(WellKnownFolderName.Calendar, new Mailbox(emAddr.getAddress())); 
FindItemsResults<Appointment> findResults = service.findAppointments(folderId, cView); 
ArrayList<Appointment> calItem = findResults.getItems(); 
PropertySet itemPropertySet = new PropertySet(BasePropertySet.FirstClassProperties); 
itemPropertySet.setRequestedBodyType(BodyType.Text); 
int numItems = findResults.getTotalCount(); 
for (int i=0;i<numItems;i++) { 
    Appointment Details = Appointment.bind(service, calItem.get(i).getId(),itemPropertySet); 
    calItem.get(i).load(); 
    System.out.println(calItem.get(i).getOrganizer().getName()); 
    System.out.println(calItem.get(i).getStart()); 
    System.out.println(calItem.get(i).getEnd()); 
    System.out.println(calItem.get(i).getSubject()); 
    System.out.println(calItem.get(i).getDisplayTo()); 
    System.out.println(calItem.get(i).getLocation()); 
    System.out.println(Details.getBody()); 
} 

ответ

0

Вы можете проверить комнату для переговоров самостоятельно с Outlook, как функция безопасности, обмен изменит Субъект и удалить тела, например, см https://technet.microsoft.com/en-us/library/dd335046(v=exchg.160).aspx и параметры aAddOrganizerToSubject и DeleteComments, которые включены по умолчанию. Это делается для предотвращения доступа к конфиденциальной информации о собраниях любым, кто имеет доступ к почтовому ящику в конференц-зале.

Приветствия Глен

+0

Благодаря Глен! Это не исправило мою проблему, но я дал больше вопросов для рассмотрения. Объект пока только показывает имя административного пользователя, и тело по-прежнему отображается пустым. – user2867040

+0

Привет, Глен, я обнаружил несогласованность: когда я перехожу к ассистенту диспетчера планирования в Outlook (O365), я могу видеть встречи в комнате, но я не вижу их, когда показываю календарь. Любая идея, что мне не хватает? – user2867040

Смежные вопросы