Это код, который я использую, который работает отлично. Единственное, с чем я борюсь, это получение информации об участниках.
$request = new EWSType_FindItemType();
$request->Traversal = EWSType_ItemQueryTraversalType::SHALLOW;
$request->ItemShape = new EWSType_ItemResponseShapeType();
$request->ItemShape->BaseShape =
EWSType_DefaultShapeNamesType::DEFAULT_PROPERTIES;
$request->CalendarView = new EWSType_CalendarViewType();
$request->CalendarView->StartDate = date('c', strtotime('01/01/2015 -00'));
$request->CalendarView->EndDate = date('c', strtotime('01/31/2016 -00'));
$request->ParentFolderIds = new EWSType_NonEmptyArrayOfBaseFolderIdsType();
$request->ParentFolderIds->DistinguishedFolderId =
new EWSType_DistinguishedFolderIdType();
$request->ParentFolderIds->DistinguishedFolderId->Id =
EWSType_DistinguishedFolderIdNameType::CALENDAR;
$response = $ews->FindItem($request);
if ($response->ResponseMessages->FindItemResponseMessage->RootFolder->TotalItemsInView > 0){
$events = $response->ResponseMessages->FindItemResponseMessage->RootFolder->Items->CalendarItem;
foreach ($events as $event){
var_dump($event);
}
Участники, Тело Назначения и ряд других свойств не возвращаются с помощью операции FindItems, см. https://msdn.microsoft.com/en-us/library/bb508824.aspx. Так что вам нужно будет сделать запрос GetItem на Appoointment, например,
foreach ($events as $event) {
$request = new EWSType_GetItemType();
$request->ItemShape = new EWSType_ItemResponseShapeType();
$request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES;
$request->ItemShape->BodyType = EWSType_BodyTypeResponseType::HTML;
$request->ItemIds = new EWSType_NonEmptyArrayOfBaseItemIdsType();
$request->ItemIds->ItemId = array();
$event_item = new EWSType_ItemIdType();
$event_item->Id = $event->ItemId->Id;
$request->ItemIds->ItemId[] = $event_item;
$response = $ews->GetItem($request);
var_dump($response)
}
ура
лощина
Других решений пока нет …