使用php-ews向Exchange 2007添加约会

时间:2011-08-01 14:16:21

标签: php exchange-server exchangewebservices

有没有人有任何php-ews的经验?我想通过php-ews添加一个新的约会到Exchange 2007日历,但我不知道如何。 php-ews的文档非常有限。有没有人在此之前做过这件事,并提供和示例? 感谢

1 个答案:

答案 0 :(得分:6)

唉。几个星期前我经历过这个。文档很糟糕。如果您对PHP和EWS有任何疑问,请随时与我联系。

因此,假设您要为某些用户的日历创建新的日历事件,则需要首先下载James Armes的Exchange Web服务客户端:http://code.google.com/p/php-ews/source/browse/

这是一系列PHP类,可以通过PHP轻松访问Exchange服务器。

然后创建一个ExchangeWebServices对象

$ews = new ExchangeWebServices(
'server address',
'username@address',
'password'
);

从那里你可以通过在PHP中构造一个“request”对象来构造SOAP XML请求,其中对象的属性是SOAP请求的层。

    $request->SendMeetingInvitations = 'SendToNone';
    $request->SavedItemFolderId->DistinguishedFolderId->Id = 'calendar';
    $request->Items->CalendarItem->Subject = 'this is the subject of the email';
    $request->Items->CalendarItem->Start = date('c', strtotime('today'));
    //making this an all day event for the heck of it
    $request->Items->CalendarItem->End = date('c',  strtotime('today + 1 day'));
    $request->Items->CalendarItem->IsAllDayEvent = true;
    $request->Items->CalendarItem->LegacyFreeBusyStatus = 'Free';
    $request->Items->CalendarItem->Categories->String = $category;
    $request->Items->CalendarItem->Body->BodyType = 'Text';
    $request->Items->CalendarItem->Body->_ = $body;

然后将请求发送到服务器:

    $response = $ews->CreateItem($request);

var_dump-ing $ response将为您提供服务器响应,并让您对XML的工作原理有所了解。

至于那些文档很少,Microsoft文档将告诉您如何设置XML请求(即,赋予哪些对象的属性)以及您可以调用XML请求的方法:{{3} (参见“操作”和“XML元素”)

希望这有帮助!如果您有任何问题,请告诉我。