php-ews交换2007年房间日历活动

时间:2013-07-29 22:29:15

标签: exchange-server php-ews

我们正在进行2007年的交流,我正在使用php-ews,我希望得到一份房间资源的所有预订清单。根据房间资源,我的意思是创建会议邀请时Outlook中的房间按钮。

到目前为止我的代码从我的日历中返回项目,但我需要来自'会议室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>';

2 个答案:

答案 0 :(得分:1)

我甚至迟到了比赛。但我解决这个问题的方法是在房间名称之后创建一个交换帐户,例如会议室@。

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

我的软件用于房间外的显示标志,根据此日历显示房间是否正在使用。

答案 1 :(得分:0)

游戏后期但也许这会对某人有所帮助....

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

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