楽天商品検索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: <?php
14:
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を指定してください"; // developerId
27: $aff_id = "自分のアフィリエイトIDを指定してください"; // affiliateId
28:
29: $api_ver = "1.11"; // apiVersion
30: $version = "2007-10-25"; // version
31: $hit_cnt = "30"; // hits
32: $page_cnt = "1"; // page
33: $sort = "+itemPrice"; // sort
34: $min_price = "0"; // minPrice
35: $max_price = "10000"; // maxPrice
36: $avail = "1"; // availability
37: $field = "1"; // field
38: $carrier = "0"; // carrier
39: $img_f = "1"; // imageFlag
40: $or_f = "0"; // orFlag
41: $gen_info = "1"; // genreInformationFlag
42:
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_info
62: )
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を利用する際、参考にしていただければ幸いです。