2016-08-05 14 views
1

先週私はEWS用のPHPライブラリに苦労しました。私はPackage365EwsとPhp-ewsを試しましたが、どちらも私の中核機能を欠いている、またはそれは文書化されていません - GetRooms。誰かがそれを処理する方法を知っていますか、これを実装する別のライブラリを知っていますか?Office365用PHPライブラリGetRoomsを持つEWS

答えて

2

個人的に私自身のライブラリgarethp/php-ewsを提案します。

シンプルな使い方がありますが、すべてが単純なAPIでカバーされているわけではありません。 EWSはの大物であり、すべてを文書化することは激しいだろう。つまり、マイクロソフトによる既存のドキュメントをこのコードを使用して翻訳する手助けをすることは間違いありません。そして、この記事の後にもっと多くの問題を見つけたら、毎日私の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は、あなたがそれらがあなたのために構築されている、ヘッダ、および<m:GetRooms>部分をスキップすることができます

<?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: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

私の例はまさにその例でした。あなたはあなたがそれを送る前に作る$要求の配列全体を私に見せてもらえますか? –

+0

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

関連する問題