2011-08-01 37 views
1

有沒有人有任何使用php-ews的經驗?我想通過php-ews爲Exchange 2007日曆添加一個新約會,但我不確定如何。 php-ews的文檔非常有限。有沒有人做過這件事,並關心提供和例子? 謝謝使用php-ews添加約會到Exchange 2007

回答

6

呃。幾周前我經歷了這個。這個文件很爛。隨時問我關於PHP和EWS的任何問題。

所以假設你的意思是你要創建一些用戶的日曆中新的日曆事件,則需要通過下載詹姆斯·阿姆斯的Exchange Web服務客戶端開始:http://code.google.com/p/php-ews/source/browse/

這是一系列的PHP類的,這使得它易於通過PHP訪問Exchange服務器。

然後,您可以創建一個對象ExchangeWebServices

$ews = new ExchangeWebServices(
'server address', 
'[email protected]', 
'password' 
); 

從那裏,你可以通過在PHP構建一個「請求」對象構造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 $迴應會給你的服務器響應,給你如何XML的作品是一個好主意。

至於什麼是小文檔,Microsoft文檔將告訴您如何設置XML請求(即,給出哪些對象的屬性)以及您可以在XML請求中調用哪些方法:http://msdn.microsoft.com/en-us/library/bb204119(v=exchg.140).aspx(請參閱「操作」和「XML元素」)

希望這有助於!如果您有任何問題,請告訴我。

+0

這工作,感謝您的幫助。我相信我將來會有更多的問題。我希望php-ews儘快獲得更多文檔。 – Keith

+0

還有一個問題:假設我正在連接的用戶有權訪問其他用戶日曆,那麼如何將日曆項添加到其他用戶日曆?另外,什麼是您的示例代碼中引用的$ category和$ body? – Keith

+1

要將項目添加到其他用戶的日曆,您需要添加與會者。請參閱示例XML:http://msdn.microsoft.com/en-us/library/aa564690%28v=exchg.140%29.aspx ($ category和$ body只是文本的佔位符變量。 「顏色」或類別的項目,而身體是事件的正文) – tessr

相關問題