■SOAP関数とは
PHP5からSOAP関数が標準で利用できるようになっているので、PHPからSOAPで提供されているWebAPIを利用するのはとても簡単に出来ます。
一応オプション扱いになっているので、導入方法はPHPのSOAP関数を見てください。
使えるようになっているかどうかはphpinfoで確認すればよいでしょう。
レンタルサーバーで使えるようになっていない場合は、管理者に連絡すればインストールしてくれると思います。
PHP4の方はPEARのSOAPであるSOAP Client/Server for PHPを使うのが簡単でしょう。
一応オプション扱いになっているので、導入方法はPHPのSOAP関数を見てください。
使えるようになっているかどうかはphpinfoで確認すればよいでしょう。
レンタルサーバーで使えるようになっていない場合は、管理者に連絡すればインストールしてくれると思います。
PHP4の方はPEARのSOAPであるSOAP Client/Server for PHPを使うのが簡単でしょう。
■サンプル
ここでは、
・ターゲットAPIとしてマイクロソフトが提供しているLive Search
・指定キーワードで画像を20件表示する
サンプルを提示してみます。
SoapClient コンストラクタの引数としてWSDLのURIを指定すると、オブジェクトが返ってくるので、
後は必要な引数をセットしてから必要なメソッド(ここでは、Search)を呼ぶだけです。
なぜ、Searchメソッド?という疑問があると思います。
WSDL文書を見てもいいですし、SOAP関数のSoapClient->__getFunctions() ? SOAP 関数の一覧を返すでもサポートしている関数一覧を取得できます。
ちなみに、LiveSearchのWSDL文書はここで確認できます。当然ですが、どんな引数が使えるかも定義されているので、これを見れば何が出来るのかが分かります。
getFunctionメソッドを使って確認する場合は、
・ターゲットAPIとしてマイクロソフトが提供しているLive Search
・指定キーワードで画像を20件表示する
サンプルを提示してみます。
function searchImageMSN($keyword)
{
if(!strlen($keyword)) return;
$tns = 'http://schemas.microsoft.com/MSNSearch/2005/09/fex';
$op = array('type_ns' => 'tns', 'type_url' => $tns);
$client = new SoapClient('http://soap.search.msn.com/webservices.asmx?wsdl', $op);
$sourceRequest = array(
'Source' => 'Image',
'Offset' => 0,
'Count' => 20,
'ResultFields' => 'Image');
$requests = array( 'SourceRequest' => $sourceRequest );
$searchRequest = array(
'AppID' => 'あなたのアプリケーションID',
'Query' => $keyword,
'SafeSearch' => 'Moderate',
'Flags' => 'None',
'CultureInfo' => 'ja-JP',
'Requests' => $requests );
$search = array('Request' => $searchRequest);
$response = $client->Search($search);
$results = $response->Response->Responses->SourceResponse->Results;
foreach ($results->Result as $result) {
$tag = '<img src="' . $result->Image->ThumbnailURL . '">';
print $tag;
}
}
このようにSOAP関数の使い方はとても簡単です。SoapClient コンストラクタの引数としてWSDLのURIを指定すると、オブジェクトが返ってくるので、
後は必要な引数をセットしてから必要なメソッド(ここでは、Search)を呼ぶだけです。
なぜ、Searchメソッド?という疑問があると思います。
WSDL文書を見てもいいですし、SOAP関数のSoapClient->__getFunctions() ? SOAP 関数の一覧を返すでもサポートしている関数一覧を取得できます。
ちなみに、LiveSearchのWSDL文書はここで確認できます。当然ですが、どんな引数が使えるかも定義されているので、これを見れば何が出来るのかが分かります。
getFunctionメソッドを使って確認する場合は、
var_dump($client->__getFunctions());というコードを追加すれば、メソッド一覧(といってもひとつだけですが・・・)が確認できます。
■呼び出し例
上のサンプルコードを実装し、「初音ミク」(なんで「初音ミク」?ってのは置いといて・・・、まあ、LiveSearchといったらコレしかないでしょう。)をキーワードとして呼び出した例はここをクリックすると確認できます。
■SOAPに関連した書籍
(データ提供:Amazon.co.jp)


