2013-07-29 87 views
0

我们正在交流2007年,我正在使用php-ews,我想获得所有房间资源预订的列表。通过房间资源,我指的是创建会议邀请时前台的房间按钮。php-ews exchange 2007房间日历活动

我到目前为止的代码已从我的日历返回项目,但我需要'会议室A'的日历。任何人都这样做了?

$host = 'mailhost'; 
$username = 'xxxx'; 
$password = 'xxxx'; 
$mail = 'xxxx'; 
$startDateEvent = "2013-01-14T09:00:00"; 
$endDateEvent = "2013-09-20T17:00:00"; 

$ews = new ExchangeWebServices($host, $username, $password); 
$request = new EWSType_FindItemType(); 
$request->Traversal = EWSType_FolderQueryTraversalType::SHALLOW; 

$request->CalendarView->StartDate = $startDateEvent; 
$request->CalendarView->EndDate = $endDateEvent; 
$request->CalendarView->MaxEntriesReturned = 100; 
$request->CalendarView->MaxEntriesReturnedSpecified = true; 
$request->ItemShape->BaseShape = EWSType_DefaultShapeNamesType::ALL_PROPERTIES; 

$request->ParentFolderIds->DistinguishedFolderId->Id = EWSType_DistinguishedFolderIdNameType::CALENDAR; 
$request->ParentFolderIds->DistinguishedFolderId->Mailbox->EmailAddress = $mail; 
$response = $ews->FindItem($request); 
echo '<pre>'.print_r($response, true).'</pre>'; 

回答

0

迟到了比赛,但也许这将帮助别人....

基本上,PHP-EWS从未加入GetRooms操作。您可以修改您的应用程序以通过ldap执行房间查找(假设您的房间以AD存在),然后使用每个房间的电子邮件地址并使用模拟查询它的日历。

见我的答案在这里... https://stackoverflow.com/a/23815914/2979715

0

我甚至以后的比赛。但我解决这个问题的方式是在房间名称后面创建一个交换账户,例如会议室@。

然后,当他们发出会议请求时,我就让人们在会议室@中复制。我的脚本只是询问董事会的日历。组织中的每个人都拥有会议室日历的副本,只读模式下,他们可以查看该周的所有会议。

我的软件是在房间外面的显示标志,显示房间是否在使用或不是基于这个日历。