지난 주 전체 나는 EWS 용 PHP 라이브러리에 어려움을 겪었습니다. 나는 Package365Ews와 Php-ews를 시도했지만 둘 다 핵심 기능이 없다거나 문서화되어 있지 않다 - GetRooms. 아무도 그것을 처리하는 방법을 알고, 또는 이것을 구현하는 다른 라이브러리를 아십니까?GetRooms가있는 Office365 EWS 용 PHP 라이브러리
답변
저는 개인적으로 내 라이브러리 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 설명서를 참조하여 필요한 모든 요청을 할 수 있습니다.
안녕하세요! 가레스! 놀랍지 만, 나는 방금 라이브러리를 테스트하고 작성한 모든 것을 만들었지 만 빈 응답을 받았습니다. [링크] (http://pastebin.com/1pxQ84Ls) RoomsList는 어떻게됩니까? – Sajgoniarz
예제는 저의 예제입니다. 보내기 전에 $ request 배열 전체를 보여줄 수 있습니까? –
[link] (http://pastebin.com/ycrVx2Pz) – Sajgoniarz