前回の続き。
書籍”公開API活用ガイド”の第5章:アフィリエイト・リンクを読んで実践。
“楽天商品検索API”の結果をJSONP形式で取得するJavaScriptプログラムを解説していた。
メモ
- リクエストURLの形式:http://api.rakuten.co.jp/rws/[version]/[schema]?[parameter]=[value]…
- schemaは、今回”json”を指定
- parameterに”callBack=コールバック関数”を入れるとJSONP形式。定義したコールバック関数が呼ばれる。
- コールバック関数で指定した引数(items)にJSONP形式のデータが入る
- items.Body.ItemSearch.Items.Item配列から要素を一つずつ抽出
JavaScriptのDOM操作がよくわかってなく見よう見まね状態。商品画像を表示するだけでリンク張れなかった(aタグの追加に失敗する)。。必要になったときにまた調べようと思う。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>楽天ウェブサービス(RWS) API practice</title> </head> <body> <h1>楽天ウェブサービス(RWS) API sample</h1> <input type="text" id="keyword" size="35" maxlength="255" value="" /> <input type="button" onclick="search_rakuten();" value="search" /> <br /> <script type="text/javascript"> <!-- function search_rakuten() { var text = document.getElementById('keyword').value; if (text) { var url = "http://api.rakuten.co.jp/rws/3.0/json?developerId=RWSDeveloperID&affiliateId=RWSAffiliateID&operation=ItemSearch&version=2010-09-15&keyword=" + encodeURI(text) + "&sort=standard&hits=10&callBack=callbackFunc"; callJSONP(url); } } function callJSONP(url) { var target = document.createElement('script'); target.src = url; document.body.appendChild(target); } function callbackFunc(items) { num = items.Body.ItemSearch.Items.Item; for (var i in num) { var elemImg = document.createElement('img'); elemImg.setAttribute('src', num[i].mediumImageUrl); document.getElementById('searchcontrol').appendChild(elemImg); } } //--> </script> <div id="searchcontrol"></div> <!-- Rakuten Web Services Attribution Snippet FROM HERE --> <a href="http://webservice.rakuten.co.jp/" target="_blank">Supported by 楽天ウェブサービス</a> <!-- Rakuten Web Services Attribution Snippet TO HERE --> </body> </html>
参考サイト
公開API活用ガイド (I・O BOOKS)
posted with amazlet at 12.01.24
ZAPA
工学社
売り上げランキング: 149253
工学社
売り上げランキング: 149253
関連エントリー