2016-08-05 6 views
1

지난 주 전체 나는 EWS 용 PHP 라이브러리에 어려움을 겪었습니다. 나는 Package365Ews와 Php-ews를 시도했지만 둘 다 핵심 기능이 없다거나 문서화되어 있지 않다 - GetRooms. 아무도 그것을 처리하는 방법을 알고, 또는 이것을 구현하는 다른 라이브러리를 아십니까?GetRooms가있는 Office365 EWS 용 PHP 라이브러리

답변

2

저는 개인적으로 내 라이브러리 garethp/php-ews을 제안합니다.

간단한 사용법이 있지만 단순한 API에서는 모든 것이 다루어지지 않습니다. EWS는 크기가 매우 커서 일이며 모든 것을 문서화하면 강렬합니다. 즉, 필자는 Microsoft의 기존 문서를이 코드를 사용하여 번역하는 것을 확실히 도울 수 있습니다. 그리고이 게시물 이후에 더 많은 이슈를 발견하면 일일이 내 Github을 확인하므로 내 저장소에 문제를 기록하면 더 나은 곳에서 도움을 얻을 수 있습니다.

그러나 먼저 직접 문서화되지 않은 기능을 수행하는 방법을 설명하겠습니다. GetRooms처럼. 내 API는 주위에 EWS를 감싸고 있지만 액세스가 차단되지 않습니다. 따라서 GetRooms를 수행 할 확실한 방법을 만들지는 않았지만 it's still there. 이처럼

<?php 

use garethp\ews\API; 
use garethp\ews\API\Type; 

$api = API::fromUsernameAndPassword($server, $username, $password); 

//Build Request 

$result = $api->getClient()->GetRooms($request); 

var_dump($result); 

그래서 질문은 어떻게 작성됩니까? 감사하게도 EWS는 XML로 잘 설명되어 있습니다. 먼저,하려는 일을 설명하는 기사를 찾은 다음 XML을 찾으십시오. 나는 당신이 원하는 100 %가 아니지만, this article as a base을 사용할 것입니다. 우리가 복제하려고하는거야 XML은

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
      xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
      xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Header> 
    <t:RequestServerVersion Version="Exchange2010" /> 
    </soap:Header> 
    <soap:Body> 
    <m:GetRooms> 
     <m:RoomList> 
     <t:EmailAddress>[email protected]</t:EmailAddress> 
     </m:RoomList> 
    </m:GetRooms> 
    </soap:Body> 
</soap:Envelope> 

당신은 헤더를 건너 뛸 수 있습니다, 그리고 <m:GetRooms> 부분은, 사람들은 당신을 위해 내장되어 있습니다. 우리가 중점을 두는 것은 당신이 보내고 싶은 페이로드입니다. 이것은

<m:RoomList> 
    <t:EmailAddress>[email protected]</t:EmailAddress> 
</m:RoomList> 

입니다. 우리는 요청을 그렇게 보이게하려고합니다. 따라서 코드에서 우리의 요청은 다음과 같이 보일 것입니다 :

$request = array (
    'RoomsList' => array (
     'EmailAddress' => '[email protected]' 
    ) 
); 

$request = Type::buildFromArray($request); 

그리고 이것은 SOAP 호출을 위해 XML로 변환 될 것입니다. 이 방법을 사용하면 문서화되지 않았거나 지원되지 않는 기능에 대해서도 쉽게 사용할 수 있으며 공식적인 Microsoft 설명서를 참조하여 필요한 모든 요청을 할 수 있습니다.

+0

안녕하세요! 가레스! 놀랍지 만, 나는 방금 라이브러리를 테스트하고 작성한 모든 것을 만들었지 만 빈 응답을 받았습니다. [링크] (http://pastebin.com/1pxQ84Ls) RoomsList는 어떻게됩니까? – Sajgoniarz

+0

예제는 저의 예제입니다. 보내기 전에 $ request 배열 전체를 보여줄 수 있습니까? –

+0

[link] (http://pastebin.com/ycrVx2Pz) – Sajgoniarz