商品検索SOAP API サンプルソース (PHP)
楽天商品検索SOAP API PHPサンプルコード解説楽天商品検索SOAP APIを利用するPHPの簡単なサンプルコードを紹介します。■動作環境- PHP5動作環境PHP5インストール時に--enable-soapと--enable-mbstringの2つのオプションが指定されている必要があります。例)./configure --with-apxs2=/usr/local/apache/bin/apxs --enable-soap --enable-mbstring■サンプルソースご利用の際の注意事項・ここで掲載するプログラムに関するサポートは一切しておりません。・ここで掲載するプログラムで発生した直接的及び間接的に生じた損害について弊社は一切責任を負いませんのでご了承ください。■楽天商品検索API/サンプルコード概要すべてのサンプルコードはこちら・検索フォーム8行目から11行目で、検索を行うHTMLのフォームを記述しています。1: <html>2: <head>3: <title>商品検索</title>4: </head>5: <body>6: 7: <!-- 検索キーワードの入力 -->8: <form action="" method="post">9: <input type="text" name="search_keyword" value="商品検索">10: <input type="submit">11: </form>・検索キーワードの取得13行目~20行目で、POSTされた検索キーワードを取得し、UTF-8でデコードしています。13: <?php14: 15: // リクエストから検索キーワードをセット16: if (isset($_REQUEST['search_keyword'])) {17: $keyword = mb_convert_encoding($_REQUEST['search_keyword'], "UTF-8", "auto");18: } else {19: $keyword = "";20: }・SoapClinetの作成23行目でSOAPクライアントを生成しています。SoapClientのコンストラクタの引数にはwsdlのURLを指定します。今回は商品検索を行うサンプルなので商品検索のwsdlを取得するURLです。22: // SoapClientを生成23: $client_itemsearch=new SoapClient("http://api.rakuten.co.jp/rws/soap/ItemSearch/2007-10-25?wsdl");・パラメータの設定リクエストに設定するパラメータを作成します。44行目から63行目でパラメータの連想配列を作成しています。25: // パラメータの値26: $dev_id = "自分のディベロッパーIDを指定してください"; // developerId27: $aff_id = "自分のアフィリエイトIDを指定してください"; // affiliateId28: 29: $api_ver = "1.11"; // apiVersion30: $version = "2007-10-25"; // version31: $hit_cnt = "30"; // hits32: $page_cnt = "1"; // page33: $sort = "+itemPrice"; // sort34: $min_price = "0"; // minPrice35: $max_price = "10000"; // maxPrice36: $avail = "1"; // availability37: $field = "1"; // field38: $carrier = "0"; // carrier39: $img_f = "1"; // imageFlag40: $or_f = "0"; // orFlag41: $gen_info = "1"; // genreInformationFlag42: 43: # パラメータの連想配列44: $params = array(45: 'param' => array(46: 'affiliateId' => $aff_id,47: 'developerId' => $dev_id,48: 'keyword' => $keyword,49: 'apiVersion' => $api_ver,50: 'version' => $version,51: 'hits' => $hit_cnt,52: 'page' => $page_cnt,53: 'sort' => $sort,54: 'minPrice' => $min_price,55: 'maxPrice' => $max_price,56: 'availability' => $avail,57: 'field' => $field,58: 'carrier' => $carrier,59: 'imageFlag' => $img_f,60: 'orFlag' => $or_f,61: 'genreInformationFlag' => $gen_info62: )63: );・APIの呼び出し67行目でAPIの呼び出しを行っています。引数には上で作成したパラメータの連想配列を指定します。65: // APIの呼び出し66: try {67: $result = $client_itemsearch->operationItemSearch($params);68: } catch (SoapFault $e) {69: // 呼び出しに失敗した場合70: print_r($e);71: exit(0);72: }・結果の表示76行目でステータスのチェックを行い、ステータスがSuccessの場合に、78行目から商品毎にループします。今回のサンプルでは画像と、商品名、店舗名を表示しています。74: // 結果のHTML表示75: print_r("<table width=\"100%\" border=\"0\">");76: if ($result->return->status === "Success") {77: // 取得に成功した場合78: foreach ($result->return->itemArray as $value) {79: print_r("<tr>");80: print_r(" <td width=\"90\">");81: print_r("<a href=\"$value->affiliateUrl\"><img src=\"$value->mediumImageUrl\" border=\"0\"></a>");82: print_r(" </td>");83: print_r(" <td align=\"left\">");84: print_r(" 商品名 :<a href=\"$value->affiliateUrl\">$value->itemName</a>");85: print_r(" <br />");86: print_r(" 店舗名 :<a href=\"$value->shopUrl\">$value->shopName</a>");87: print_r(" <br />");88: print_r(" </td>");89: print_r("</tr>");90: }91: } else {92: // 取得に失敗した場合93: // ("NotFound","ServerError","ClientError","Maintenance")94: print_r($result->return->statusMsg);95: }96: print_r("</table>");97: 98: ?>99: 100: </body>101: </html>以上、今回はPHPで、SOAPの商品検索APIを利用する簡単なサンプルを紹介いたしました。SOAPを利用する際、参考にしていただければ幸いです。