全51件 (51件中 1-50件目)
いつもご利用ありがとうございます、楽天ウェブサービスのお客様担当でございます。こちらウェブサービスセンターブログをご覧いただいている皆様に、お知らせがございます。楽天ウェブサービスのブログが新しくなります。リリース情報やメンテナンス情報などをより早く皆様にお届けできるようにすると共に、その他開発に役立つ情報など様々な記事を開発スタッフが書いていく予定です。RWS開発日記http://webservice.rakuten.co.jp/blog/今後は新しいブログをご覧ください。今後とも楽天ウェブサービスをよろしくお願いします。
2008.07.04
株式会社リクルートとサン・マイクロシステムズ株式会社が共同で開催している「Mash up Award 4th」にて、楽天APIを使用した開発アイデアを募集しています。審査の結果、優秀と認められた作品には賞金(最優秀賞100万円ほか)および賞品が授与されます。【Mash up Award 4th実施要領】■応 募 条 件:まずは下記「Mash up Award 4th」公式ウェブページから参加登録をお願いします。実施要領の詳細については、併せてご参照ください。■審 査 基 準:Mashup Award 4thでは、下記3つの視点から評価・審査を行います。アイデア:独自性、新規性、優れた着眼点、発展可能性 完 成 度:実用性、ユーザビリティ、アトラクティビティ デザイン:芸術性、優れた表現技法 ■作品募集期間 : 2008/06/03 - 2008/09/16 ■受 賞 式 : 2008年10月19日■賞 金: 最優秀賞・賞金 100万円 優秀賞 各10万円 特別賞 各5万円 ※部門賞の設定も予定しています ※該当作品がなかった場合、受賞無しとなる場合もあります。【Mash up Award 4th公式ウェブページ】 http://mashupaward.jp/今年は、特別賞が新設されたり、API提供企業が増えたりと、去年よりもさらにパワーアップして開催されます。楽天APIも、前回より提供APIが増えておりますので、これを機会に、より多くの方に楽天APIを知っていただいて、たくさんのご意見を頂戴できればと思います。去年も面白い作品が数多く応募されてましたので、今年はどんな作品が飛び出すか、私達スタッフも今から大変楽しみにしております。それでは、皆さまの作品をお待ちしております!
2008.06.05
楽天商品検索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を利用する際、参考にしていただければ幸いです。
2008.02.12
2008/02/03に楽天トラベルのメンテナンスが行なわれます。楽天トラベルのサービス停止時間は以下の通りです。2008/02/03 1:00~10:00(※メンテナンス終了次第、サービスを再開いたします。時間は若干変更となる場合がございますことをご了承ください。)※詳しくはこちらをご覧ください<楽天市場 定期メンテナンスのお知らせ>http://www.rakuten.co.jp/aboutus/am/maint/2008/0203.html<楽天トラベル 定期メンテナンスのお知らせ>http://travel.rakuten.co.jp/stop/mente20080203.htmlそれに伴い以下のトラベル系APIが作業時間中は利用できなくなります。・楽天トラベル施設検索API・楽天トラベル施設情報API・楽天トラベル空室検索API・楽天トラベル地区コードAPI・楽天トラベルキーワード検索API皆さんには大変ご迷惑をお掛け致しますが、何卒よろしくお願いします。
2008.01.31
楽天商品検索API Javaサンプルコード解説楽天商品検索APIを利用したJavaの簡単なサンプルコードを紹介します。■動作環境- Java実行環境- Javaサーブレットコンテナ■サンプルソースご利用の際の注意事項・ここで掲載するプログラムに関するサポートは一切しておりません。・ここで掲載するプログラムで発生した直接的及び間接的に生じた損害について弊社は一切責任を負いませんのでご了承ください。■楽天商品検索API/サンプルコード概要・ファイル構成WEB-INF/src/shopping/ItemSearchServlet.javaWEB-INF/itemSearch.xslWEB-INF/web.xml■ItemSearchServlet.java検索キーワードを取得して、XSLT処理を行うサーブレットクラスです。この全ソースコードはこちら・解説1 keywordパラメータの取得26: // パラメータを取得27: String keyword = request.getParameter("keyword");28: if (keyword == null) {29: keyword = "";30: } else {31: keyword = new String(keyword.getBytes("ISO-8859-1"),32: "JISAutoDetect");33: }27行目でkeywordパラメータを取得し、31行目で文字コード変換をしています。・解説2 XML Transformerの作成今回のサンプルではXSLTでXMLをHTMLに変換してページを表示します。実際に、変換処理を行うJavaのTransformerオブジェクトを作成します。36: TransformerFactory factory = TransformerFactory.newInstance();37: Transformer transformer = factory.newTransformer(new StreamSource(38: this.getServletContext().getRealPath(39: "/WEB-INF/itemSearch.xsl")));40: 41: transformer.setOutputProperty(OutputKeys.METHOD, "html");42: transformer.setOutputProperty(OutputKeys.ENCODING, "EUC-JP");43: transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,44: "yes");45: transformer.setOutputProperty(OutputKeys.INDENT, "yes");46: transformer.setParameter("keyword", keyword);36行目でファクトリを作成し、37行目でファクトリから新しいTransformerオブジェクトを作成し、41~45行目でTransformerオブジェクトのプロパティを設定し、46行目でXSLファイルで使用するkeywordパラメータの値を設定しています。・解説3 APIからの入力ストリームを取得49: String requestPath = "http://api.rakuten.co.jp/rws/1.11/rest?developerId="50: + DEVELOPER_ID51: + "&operation=ItemSearch&version=2007-10-25&keyword="52: + URLEncoder.encode(keyword, "UTF-8");53: 54: URL requestUrl = new URL(requestPath);55: URLConnection connection = requestUrl.openConnection();56: InputStream input = connection.getInputStream();57: BufferedReader reader = new BufferedReader(new InputStreamReader(58: input, "UTF-8"));49行目でリクエストするAPIのパスを作成し、54行目でそのURLオブジェクトを作成しています。55行目から57行目で実際にAPIに接続し入力ストリームを取得しています。・解説4 XSLT処理の実行61: transformer.transform(new StreamSource(reader), new StreamResult(62: response.getOutputStream()));61行目でTransformerオブジェクトのtransformメソッドでXMLからHTMLへの変換を行っています。■itemSearch.xslXMLからHTMLへの変換方法が記述されているXSLファイルです。このファイルをいろいろいじることによって画面に表示するデータやレイアウトを自由に変えることができます。今回のサンプルは画像と商品名のみの表示を行う簡単なものです。全ソースコードはこちら・解説1 パラメータの取得4: <xsl:param name="keyword" />4行目でサーブレットで設定されたkeywordパラメータの値を取得しています。・解説2 APIのステータスの取得21: <xsl:variable name="status" select="Response/header:Header/Status" />21行目でStatus要素の中にあるAPIレスポンスのステータス情報を取得しています。・解説3 ステータス毎の処理22: <xsl:choose>23: <xsl:when test="$status='Success'"> <!-- Successの場合 -->24: <b>検索結果:<xsl:value-of select="Response/Body/itemSearch:ItemSearch/count" />件 25: <xsl:value-of select="Response/Body/itemSearch:ItemSearch/page" />ページ目を表示</b> <br/>26: 27: <table border="0">28: <!-- 商品毎にループ開始 -->29: <xsl:for-each select="Response/Body/itemSearch:ItemSearch/Items/Item">30: <tr>31: <td>32: <!-- 画像表示 -->33: <img>34: <xsl:attribute name="src">35: <xsl:value-of select="smallImageUrl" />36: </xsl:attribute>37: </img>38: </td>39: <td>40: 41: <!-- 商品名表示 -->42: <a>43: <xsl:attribute name="href">44: <xsl:value-of select="itemUrl" />45: </xsl:attribute>46: <xsl:value-of select="itemName" /><br/>47: </a>48: </td>49: </tr>50: </xsl:for-each>51: <!-- 商品毎にループ終了 -->52: </table>53: 54: </xsl:when>55: <xsl:when test="$status='NotFound'"> <!-- NotFoundの場合 -->56: 商品は見つかりませんでした57: </xsl:when>58: <xsl:when test="$status='ClientError'"> <!-- ClientErrorの場合 -->59: キーワードを入力してください60: </xsl:when>61: <xsl:when test="$status='ServerError'"> <!-- ServerErrorの場合 -->62: サーバーエラーが発生しました63: </xsl:when>64: </xsl:choose>24行目から54行目で、ステータスがSuccess(成功)だった場合の処理を記述しています。25行目で検索結果件数を表示し、29行目から商品毎にループさせて、商品画像と商品名の表示を行っています。■web.xmlweb.xmlでは、/itemSearchというパスでリクエストを受けたときにItemSearchSearvletで処理するようにサーブレットマッピングの設定をします。1: <?xml version="1.0" encoding="UTF-8"?>2: <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">3: <servlet>4: <servlet-name>itemSearch</servlet-name>5: <servlet-class>shopping.ItemSearchServlet</servlet-class>6: </servlet>7: 8: <servlet-mapping>8: <servlet-name>itemSearch</servlet-name>10: <url-pattern>/itemSearch</url-pattern>11: </servlet-mapping>12: </web-app>今回は、JavaでXSLTを使用して商品検索を行う簡単なサーブレットを紹介しました。簡単なサンプルでしたが、XSLTはとても便利な機能ですので、参考にしていただければ幸いです。
2008.01.28
本日、以下のAPIで、SOAP形式へ対応しました。・楽天商品検索API・楽天商品コード検索API・楽天ジャンル検索API・楽天カタログ検索API・楽天書籍検索API・楽天CD検索API・楽天DVD検索APISOAPの導入により、アプリケーションの開発が簡単になり、デベロッパーの開発負荷も少なくなります。今後、他APIでもSOAP形式に順次対応していく予定です。どうぞご期待ください!
2008.01.17
検索条件に(検索キーワード、カタログコードの指定なしで)genreId=0のみが指定された場合に、本来エラーになるべきところがエラーにならなかった問題を修正しました。上記のような指定がされた場合は、「該当件数が多すぎます。他パラメータを指定し絞込みを行ってください。」というエラーメッセージが表示されますのでご注意ください。今後とも楽天ウェブサービスをよろしくお願いします。
2007.12.07
楽天ダイナミックアドにシンプルなデザインが追加されました。楽天ダイナミックアドは、ページの内容にあった楽天の商品を自動的に表示するためのHTMLソースを作成できるサービスです。今回リリースされたシンプル版では、背景色や枠線色など色の設定も可能ですので、これまで以上に、あなたのサイトに馴染んだデザインに変更することができます!↓↓詳しくは下記をご覧ください。↓↓http://affiliate.rakuten.co.jp/dynamicad/貼るだけで簡単と大好評の楽天ダイナミックアド!シンプル版も是非ご利用ください!
2007.11.30
11/26(月)に、楽天商品検索APIにおいて、catalogCodeを使ったカタログ情報に関連する商品の検索機能が強化される予定です。 カタログ情報に関連する商品の検索結果が今までよりも正確になり、これにより検索結果に該当カタログ以外の商品が紛れ込むということが減り、同カタログ商品内での価格比較などが行ない易くなります。 (商品によっては、今までの検索結果と出力される件数が変わることがあります)これからも楽天ウェブサービスをよろしくお願いします。
2007.11.22
楽天ウェブサービスで提供されるAPIを利用して作成されたアプリケーションに、表示できる画像、テキスト形式のクレジットを用意いたしました。「クレジット表示」について、注意事項、HTMLソースを紹介していますので、ご活用ください。今後は、楽天ウェブサービスによって提供されたAPIを利用するすべてのサイトやアプリケーションには、クレジットを表示する必要がありますのでご注意ください。(楽天ウェブサービス規約第11条より)
2007.09.28
2007/8/26(日) 1:00~10:00において、楽天トラベルのメンテナンスに伴い、楽天トラベル系のAPIのサービス提供を停止させていただきます。尚、メンテナンス中は、出力中の「共通パラメーター」のStatusに"Maintenance"が表示されます。【日時】2007年08月26日01時00分~2007年08月26日10時00分【影響範囲】楽天トラベル系の5つのAPI・楽天トラベル施設検索API・楽天トラベル施設情報API・楽天トラベル空室検索API・楽天トラベル地区コードAPI・楽天トラベルキーワード検索API
2007.08.23
株式会社リクルートとサン・マイクロシステムズ株式会社が共同で開催している「Mash up Award 3rd」にて、楽天APIを使用した開発アイデアを募集しています。審査の結果、優秀と認められた作品には賞金(最優秀賞100万円ほか)および賞品が授与されます。【Mash up Award 3rd実施要領】■応 募 条 件:参加協力企業が提供するWeb APIを少なくとも1つ利用すること。(プログラムコード、開発ツール、ホスティングサービスの利用は必須条件ではありません) なお、実施要領の詳細については、下記「Mash up Award 3rd」公式ウェブページを併せてご参照ください。■エントリー期間:2007年6月27日(水)18:00 ~ 2007年9月10日(月)17:59■表 彰 式:2007年9月30日(予定)■賞 金:最優秀賞・賞金 100万円 マッシュ賞・賞金 20万円(アイデア性を重視した賞) アップ賞・賞金 20万円(完成度を重視した賞) 部門賞・賞金 5万円(各社・各サービスごとの賞)【Mash up Award 3rd公式ウェブページ】 http://jp.sun.com/mashupaward 皆さまの作品をお待ちしております!
2007.07.02
楽天市場では、2007年6月24日(日)に予定しております定期メンテナンスの際に、楽天市場のジャンルの内容を一部変更いたします。今回のジャンル変更では全ジャンルに対して、新規ジャンルの追加や既存ジャンル名の名称変更、及びジャンル階層の移動や削除を行います。このジャンル体系の変更後からは、楽天ジャンル検索APIをはじめ、ジャンルが入出力パラメーターに含まれるAPIの出力結果にも新しいジャンル体系が反映されます。ジャンル体系をキャッシュして、ご利用いただいている方は、特にご注意ください。今後、特に告知なくジャンル体系を変更する場合がありますので、定期的に新しい情報を取得していただければと思います。
2007.06.21
2007/5/27(日) 3:00~6:00において、楽天トラベルのメンテナンスに伴い、楽天トラベル系のAPIのサービス提供を停止させていただきます。尚、メンテナンス中は、出力中の「共通パラメーター」のStatusに"Maintenance"が表示されます。【日時】2007年05月27日03時00分~2007年05月27日06時00分【影響範囲】楽天トラベル系の5つのAPI・楽天トラベル施設検索API・楽天トラベル施設情報API・楽天トラベル空室検索API・楽天トラベル地区コードAPI・楽天トラベルキーワード検索API
2007.05.23
前回では楽天商品検索APIから商品情報を取得してそのリクエスト結果(XML)を簡単な正規表現で要素分解(パース)するところまででした。いよいよ検索結果をHTMLで返す処理にはいります。 155: #--------------------------------- 156: # HTMLコンテンツ 157: #--------------------------------- 158: print "Content-type: text/html; charset=UTF-8\n\n";上記はこのPerlスクリプトがアクセスしてきたブラウザに返すレスポンスヘッダにになります。\n\n(改行2文字)まではブラウザ上に表示されません。文字エンコードの指定はUTF8にします。 159: print <<"EOF"; 160: <html lang="ja"> 161: <head> 162: <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 163: <title>$API_NAME/楽天ウェブサービス</title> 164: </head> 165: <body bgcolor="#ffffff" TEXT="#333333" LINK="#3333cc"> 166: 167: <!-- タイトル --> 168: <h1 style="font-size:16px;font-weight:bold;">楽天ウェブサービス</h1> 169: <hr size="1" noshade>$API_NAME<hr size="1" noshade> 170: <!--/タイトル --> 171: 172: <!-- HTMLフォーム表示 --> 173: <form action="item_search.pl" method="get"> 174: <table width="80%" border="0" cellspacing="0" cellpadding="0" style="margin: 5px 0pt&nbsnbsp;0px;"> 175: <tr><td bgcolor="#afafaf"> 176: <table width="100%" border=0 cellspacing=1 cellpadding=5 style="font-size:12px;"> 177: <tr><td style="background-color: #eeeeee;">検索キーワード</td><td style="background-color:#ffffff;"> 178: <!-- キーワード入力テキストボックス --><input type="text" name="keyword" value="$req_params{d}" size="30"> 179: </td></tr> 180: <tr><td style="background-color: #eeeeee;">価格</td><td style="background-color: #fffgt; 181: <!-- 最小価格入力テキストボックス --> 182: <input type="text" name="minPrice" value="$req_params{minPrice}" size="20"> 円 183: ~ 184: <!-- 最上価格入力テキストボックス --> 185: <input type="text" name="maxPrice" value="$req_params{maxPrice}" size="20"> 円 186: </td></tr> 187: </table> 188: </td></tr></table><br> 189: <input type="submit" name="submit" value="商品検索"> 190: </form> 191: <!-- HTMLフォーム表示 --> 192: EOF 193: 159行目のEOFはヒア文字の宣言で、191行目のEOFまでの内容をまとめて1つの文字列(ヒア文字列)として扱います。ですのでprintでそのまま内容を出力する、といった意味です。ヒア文字列の中の変数は展開(変数→値)されます。160行目~170行目まで通常のHTMLのヘッダ、タイトル等の宣言になります。172行目はフォームの表示です。ユーザーが入力したキーワードや価格があれば$rep_param連想配列にはっていますのでその値を表示するようにします。前回行ったようにURLデコードされ、サニタイズされた値になっています。以下、商品検索APIの出力結果になります。 194: print <<"EOF"; 195: <!-- API検索結果表示 --> 196: <font style="font-size:14px;"> 197: EOF 198: if($status) { print "取得結果: $status<br>" }; 199: if($statusmsg) { print "取得内容: $statusmsg<br>" }; 200: if($count ) { print "取得件数: $count<br>" }; 201: 前々回で取得したAPIからのステータス情報やメッセージ、取得件数を表示します。以下、取得件数が0以上の場合、商品情報の一覧を表示していきます。 202: if($count > 0 ){ 203: print <<"EOF"; 204: <table width="80%" border="0" cellspacing="0" cellpadding="0" style="margin: 5px 0pt&nbsnbsp;0px;"> 205: <tr><td bgcolor="#afafaf"> 206: <table width="100%" border=0 cellspacing=1 cellpadding=5 style="font-size:12px;"> 207: <tr align="center" style="background-color: #eeeeee;"> 208: <td width="8%" >写真</td> 209: <td width="47%">商品名</td> 210: <td width="15%">価格</td> 211: <td width="30%">ショップ名</td> 212: </tr> 213: EOF 214: # ベタな正規表現 215: foreach my $item ( @items ){ 216: if($item=~/<itemName>(.+)<\/itemName>/) {$itemname=$1;} 217: if($item=~/<itemPrice>(.+)<\/itemPrice>/) {$itemprice = $1;} 218: if($item=~/<itemUrl>(.+)<\/itemUrl>/) {$itemurl = $1;} 219: if($item=~/<affiliateUrl>(.+)<\/affiliateUrl>/) {$affiliateur;= $1;} 220: if($item=~/<smallImageUrl>(.+)<\/smallImageUrl>/){$smallimageurl&nnbsp;$1;} 221: if($item=~/<shopName>(.+)<\/shopName>/) {$shopname =$1;} 222: if($item=~/<shopUrl>(.+)<\/shopUrl>/) {$shopurl =$1;} 223: @items配列には<Item>(</Item>)タグの中の文字列、つまり1商品毎に配列としてはいっています。今回はXMLパーサは利用しません(XML::Perserモジュール等を利用するといいかもしれません。)その中で表示に必要なデータを簡単な正規表現で抜き出します。216行目の商品名から、222行目の店舗URLまでが以下のテーブルの列要素に入ります。 224: print <<"EOF"; 225: <tr style="background-color: #ffffff;"> 226: <td width="8%" align="center"><a href="$itemurl" target="_top"><img src="$smallil" border=0></a></td> 227: <td width="47%" align="left"> <a href="$affiliateurl" target="_top">$itemname</a></td& 228: <td width="15%" align="right" nowrap>$itemprice 円</td> 229: <td width="47%" align="left"><a href="$shopurl" target="_top"><font size="-1">$shopt;/a></td> 230: </tr> 231: EOF 232: } 233: print <<"EOF"; 234: </table> 235: </td></tr></table> 236: EOF 237: } 238: print <<"EOF"; 239: </font> 240: <!-- /API検索結果表示 --> 241: EOF 242: 243: exit 0;上記で商品検索一覧の表示が終了です。以上、Perlで呼び出す楽天商品検索APIのサンプルコード解説になります。以前に紹介したPHP版と実装方法はほとんど変わりません。XMLパースやWWWアクセスライブラリについてはCPAN等で探してみてください。CPANには数々の便利なPerlライブラリがあります。これらを利用するともっと実装がシンプルで美しくなるはずです!・CPAN
2007.05.10
※ソースコードに一部間違いがあったため、訂正いたしました。(2007/5/25 9:54)122行目 訂正前:if($data =~/<tems>(.+)<\/Items>/){122行目 訂正後:if($data =~/<Items>(.+)<\/Items>/){前回では商品検索APIへのURLを生成するところまで行いました。今回はAPIにそのURLを投げてXMLを取得します。 96: #--------------------------------- 97: # ウェブサービスAPIに問合せ 98: #--------------------------------- 99: if(urldecode($req_params{'submit'}) eq "商品検索"){ 100: # レスポンスコンテンツ 101: my $data = get($api_url); 102: 99行目は"商品検索"ボタンがおされた時に商品検索APIにアクセスする処理に行く様、リクエストパラメタのsubmit値を参照して分岐させています。LWPライブラリのget関数を利用します。これは引数($url)のコンテンツをWEBサイトから取得し、戻り値(ここでは$data)としてその内容を返してくれるのです。変数$dataに商品検索APIからの情報がすでに入っています。$dataにはいっているXMLの内容はこんな形になります。 103: #--------------------------------- 104: # ステータス判断 105: #--------------------------------- 106: # 必要な情報だけ簡易な正規表現で取得 107: if($data){ 108: $data =~s/\n//g; 109: # ステータス 110: if($data =~/<Status>(.+)<\/Status>/){ 111: $status = $1; 112: } 113: # メッセージ 114: if($data =~/<StatusMsg>(.+)<\/StatusMsg>/){ 115: $statusmsg = $1; 116: } 117: # 件数 118: if($data =~/<count>(.+)<\/count>/){ 119: $count = $1; 120: } 121: # 商品のリスト 122: if($data =~/<Items>(.+)<\/Items>/){ 123: @items = split(/<\/Item>/,$1); # ITEMの配列 124: } 125: }else{ 126: $statusmsg = "$API_NAMEからのデータの取得に失敗しました"; 127: } 128: } 129: 今回はXMLパーサ(XMLを要素毎に分解)のライブラリを利用しません。簡単な正規表現で共通出力パラメタである要素を取得していきます。110行目、$dataの中で<Status&bt;</Status&bt;で囲まれている箇所をみつけ(/正規表現/によるマッチング)その中の値を共通パラメタStatusの変数、$statusの値($1はマッチングした値が入っている特殊変数です)として格納しています。114行目、118行目も同様です。商品のリスト<Items></Items>にかこまれた部分はその要素をごっそりぬきとり(122行目その中に商品<Item></Item>要素が複数はいっていますので少々強引ですが</Item>で文字列を分割して1商品とし、@item配列に格納(123行目)しています。以上で商品検索APIからXMLの取得と簡単な正規表現をつかった要素の切り分けが完了しました。 130: # フォーム入力値の表示 131: $req_params{keyword} = htmlspecialchars((urldecode($req_params{keyword}))); 132: $req_params{minPrice} = htmlspecialchars((urldecode($req_params{minPrice}))); 133: $req_params{maxPrice} = htmlspecialchars((urldecode($req_params{maxPrice}))); 134: 上記は検索結果後のフォームに表示するフォーム入力値をURLデコード(urldecode関数)してHTMLエスケープ(htmlspecialchars関数)する処理になっています。下記がその関数宣言になっています。 135: #--------------------------------- 136: # 関数 137: #--------------------------------- 138: # 文字列にURLデコード処理をする 139: sub urldecode{ 140: my $str=shift; 141: $str=~tr/+/ /; 142: $str=~s/%([a-fA-F0-9]{2})/pack("C",hex($1))/eg; 143: return $str; 144: }上記はURLデコード関数です。 145: # 文字列をHTMLエスケープ 146: sub htmlspecialchars{ 147: my $str = shift; 148: $str =~ s/&/&\;/g; 149: $str =~ s/"/"\;/g; 150: $str =~ s/'/\&\#39\;/g; 151: $str =~ s/</\<\;/g; 152: $str =~ s/>/\>\;/g; 153: return $str; 154: }上記はHTMLエスケープ関数です。引数のHTMLタグを無効化して返します。ユーザーからの入力値をブラウザ上に表示する場合、クロスサイトスクリプティング対策としてこの関数を使います。次回はいよいよ商品情報の表示です。
2007.04.20
楽天グループのAPI利用者向けに「楽天ウェブサービス」に関するQ&Aサイト「デベロッパーズ・コミュニティ」の提供を開始しました。「デベロッパーズ・コミュニティ」は、デベロッパーが「楽天ウェブサービス」に関連する質問をWeb上に投稿し、それに対して知識や経験を持つ別のユーザーが回答することにより疑問解決へと導くCtoC型のコミュニティサービスです。「楽天ウェブサービス」はこれまでもユーザーからの要望が多い機能を優先的に改善してまいりましたが、今後は「デベロッパーズ・コミュニティ」内の情報を新規開発にフィードバックし、さらに使い勝手のいいサービスの提供を目指してまいります。【質問・回答の投稿方法および確認方法】・投稿された質問・回答は、「デベロッパーズ・コミュニティ」から検索・閲覧できます。・質問・回答を投稿する際には、未ログイン状態の場合、楽天会員認証が求められます。
2007.04.19
前回では商品検索のHTMLフォームを表示させました。今度はこのフォームに実際にキーワードと価格を入力して「商品検索ボタン」を押してみます。商品検索結果一覧が表示されます。今回は入力された内容が楽天商品検索APIにどういった形で投げられているのかをみていきます■商品検索APIへのURL生成サンプルコード全文はこちら 1: #!/usr/bin/perl 2: #--------------------------------------------------------------- 3: # 楽天1商品検索API の利用サンプルコード (Perl) 4: #--------------------------------------------------------------- 5: # 以下を変更してPerlの実行環境におくだけでOK 6: # 詳細な仕様は以下を参照 7: # - 楽天ウェブサービス- http://webservice.rakuten.co.jp/ 8: 9: #---------------- 以下、変更部分 ------------------------------# 10: # 自分のディベロッパーID 11: 12: $DEVELOPER_ID = "自分のディベロッパーID"; 13: 14: # 自分のアフィリエイトID 15: 16: $AFFILIATE_ID = "自分のアフィリエイトID"; 17: 18: #---------------- 以上、変更部分 ------------------------------#上記ですが楽天ウェブサービスで取得したディベロッパID,アフィリエイトIDを入れるようにしてください。IDは楽天会員に登録すれば誰でも無料で取得できます。デベロッパーIDの取得(楽天会員登録もこちらから) 19: use LWP::Simple; 20: 今回は楽天商品検索APIへの接続通信にlibwww-perlライブラリ(通称LWP)を利用します。LWPはPerlでHTTP通信を行うためのライブラリ群で、今回はLWP::Simeleモジュールを利用しますので、ここでそのモジュールの利用宣言をします。ここでuse strict;等を宣言しておくと変数のタイプミスや不要な宣言を防ぐことが出来ますが今回は省略しています。 21: #--------------------------------- 22: # 定数 23: #--------------------------------- 24: # API名 25: $API_NAME = "楽天商品検索API"; 26: 27: # APIのURL 28: $API_BASE_URL = "http://api.rakuten.co.jp/rws/1.4/rest"; 29: 30: # APIのタイプ 31: $OPERATION = "ItemSearch"; 32: 33: # APIのバージョン 34: $API_VERSION = "2007-03-22";上記は特に変更の必要はありません。楽天APIはバージョン毎に半永久的に利用できるようになっていますが最新のバージョンについてはこちらをご確認ください。 36: #--------------------------------- 37: # メイン処理 38: #--------------------------------- 39: # APIステータス 40: $status = ""; 41: 42: # APIからのメッセージ 43: $statusmsg = ""; 44: 45: # 取得件数 46: $count = 0; 47: 48: # 商品リスト 49: @items = (); 50: 51: # APIへのパラメタの連想配列 52: %api_params = ( 53: "keyword" => "", 54: "version" => $API_VERSION, 55: "shopCode" => "", 56: "genreId" => "", 57: "catalogCode" => "", 58: "hits" => "", 59: "page" => "", 60: "sort" => "", 61: "minPrice" => "", 62: "maxPrice" => "", 63: "availability"=> "", 64: "field" => "", 65: "carrier" => "", 66: "imageFlag" => "" 67: ); 68: まずはこのPerlスクリプトで利用する変数の宣言から行います。39行目は楽天商品検索APIからの出力共通パラメタのステータス、42行目は出力共通パラメタのステータスメッセージ、46行目は出力サービス固有パラメタのヒット件数、が入ります。48行目には後ほど解説しますが、各商品のXML文字列の配列がはいります。52行目の連想配列は楽天商品検索APIになげることができる入力パラメタ名のキーになります。値はバージョン以外は今は空文字列になっています。 69: #--------------------------------- 70: # フォーム値からのパラメタ取得 71: #--------------------------------- 72: 73: # リクエストURL生成 74: $api_url = sprintf("%s?developerId=%s&affiliateId=%s&operation=%s",$API_BASE_URL,$DEVELOPER_ID,$AFFILIATE_ID,$OON); 75: 76: # GETメソッドの場合 77: if( $ENV{'REQUEST_METHOD'} eq "GET" ) { 78: $buffer = $ENV{'QUERY_STRING'}; 79: # POSTメソッドの場合 80: } else { 81: read( STDIN, $buffer, $ENV{'CONTENT_LENGTH'} ); 82: } 83: 84: # リクエストパラメタを連想配列に入れる 85: my %req_params = map { /([^=]+)=(.+)/ } split /&/, $buffer; 86: 87: 88: # APIのクエリ生成 89: while ( ( $key, $value ) = each ( %api_params ) ) { 90: if($req_params{$key} ne ""){ 91: $api_url = sprintf("%s&%s=%s",$api_url, $key, $req_pakey}); 92: }elsif($api_params{$key} ne ""){ 93: $api_url = sprintf("%s&%s=%s",$api_url, $key, $api_pakey}); 94: } 95: }69行目からはフォームに入力された値を取得しています。74行目ではまず楽天商品検索APIに投げるURLになるベースの文字列を生成しています。sprintfは文字列を第2引数以降で与えられた変数でフォーマットする関数です。76行目からは実際のフォーム値の取得、GETの場合とPOSTの場合ではやり方が違います。GETの場合は78行目でクエリパラメタを環境変数($ENV)から取得しています。POSTの場合は81行目でリクエストの内容を標準入力から取得しています。CGIモジュールが利用できるのであればそれぞれのパラメタ毎に $cgi = new CGI; $keyword = $cgi->param->('keyword');みたいにしてもいいかもしれません。それぞれ受け取った内容を84行目でリクエストのパラメタのキーと値毎に連想配列にいれています。88行目からは52行目で定義したAPIのパラメタ毎にフォームからのリクエストパラメタ値(90行目)もしくはAPIのデフォルトのパラメタ値(92行目)で有効な値があれば74行目で生成した楽天商品検索のURLに追加していくようにしています。これで楽天商品検索APIへのURL生成は完了です。次回は実際に上記をLWPを利用して楽天商品検索APIになげてみます!
2007.04.12

楽天商品検索APIを利用したPerlの簡単なサンプルコードを紹介します。■動作環境- Perl5の実行環境- Perlライブラリ libwww-perl(通称LWP、PerlでのWEBアクセスライブラリ)がインストールされていること(LWPのダウンロードはhttp://search.cpan.org/~gaas/libwww-perl-5.805/から可能です。) ■サンプルソースご利用の際の注意事項・ここで掲載するプログラムに関するサポートは一切しておりません。 ・ここで掲載するプログラムで発生した直接的及び間接的に生じた損害について弊社は一切責任を負いませんのでご了承ください。 ■楽天商品検索API/サンプルコード概要[全文はこちら]・Perlが動作するCGI実行環境(cgi-bin等)に置いて実行(アクセス)します。・拡張子は.plとなっていますが適宜WEBサーバの仕様にあわせて変更してください。(.cgi等)・サンプルコードのファイルは文字エンコーディングをUTF-8で保存するようにしてください。・サンプルコードに実行権限を付与(モードは755)するようにしてください。サンプルコードの動作の流れは以下になります。1) 商品検索キーワード等を入力するHTMLフォームをブラウザ上に表示します2) 商品検索キーワードが入力された場合、楽天商品検索APIに対して所定のフォーマットでリクエストを送ります3) 楽天商品検索APIから受け取ったレスポンス内容から、ステータス(状態)情報や商品情報の切り分けを行います。4) 検索結果の商品情報をHTMLでブラウザ上に表示します。■はじめにまずは上記のサンプルコードを実行領域において、アクセスしてみましょう。以下のような入力フォームが表示されます。こちらはHTMLのフォームですので、PHP版で表示される内容と変更はありません。[ 第1回 楽天商品検索API PHPサンプルコード解説]ユーザーにフォームから入力してもらうのは・商品の検索キーワード[フォームの要素名'keyword']---- 18行目・商品の下限価格 [フォームの要素名 'minPrice' ] ---- 22行目・商品の上限価格 [フォームの要素名 'maxPrice' ] ---- 25行目になります。このフォームで入力された値がPerlでどういった風に楽天商品検索APIに受け渡され処理されるのか、次回以降でみていきます。
2007.04.04
川崎 有亮さんが「IT Pro」で執筆されている「マッシュアップ・ラボ」にて、楽天ウェブサービスをご紹介いただきました。・第9回 わかりやすい楽天ウェブサービス商品検索最近登場したばかりのCPANモジュール「WebService::Rakuten」を用いたサンプルまで掲載されています。また、最後の部分では、 楽天ウェブサービスは良く練られたシンプルな構成で,いかにもインターネットの企業らしい仕様と言えそうです。ドキュメントも充実していますから,今後,新たに WEB サービス API の提供を検討されている他の企業にとっても,インタフェースや API 仕様など技術的な面に限らず,参考になる存在ではないでしょうか。 とお褒めの言葉までいただきました。ご利用いただいている皆様の期待に応えられるようにこれからも機能追加、改善に努めたいと思います。
2007.03.23
本日、楽天ウェブサービスで提供されているAPIに機能追加をしました。楽天市場関係のAPIへの機能追加以下のAPIで、「OR検索」機能、「除外キーワード」機能を追加をしました。 ・楽天商品検索API ・楽天書籍検索API ・楽天CD検索API ・楽天DVD検索API ・楽天カタログ検索API「OR検索」では、複数キーワードが設定された場合に、AND検索・OR検索のいずれかが選択可能となりました。また、検索結果から除外したいキーワードを「除外キーワード」として指定することで、これまで以上にデベロッパーのニーズに沿った検索が可能となりました。楽天トラベル関係のAPIへの機能追加以下のAPIで、「モバイル情報」、「アフィリエイトURL」が取得できるように機能追加しました。 ・楽天トラベル施設情報API ・楽天トラベル空室検索API上記の機能は、リリース以来、多くのご要望をいただいておりましたため、この度追加しました。今後もAPI追加、機能追加していく予定です。どうぞご期待ください!
2007.03.22
前回では楽天商品検索APIから商品情報を取得し、返ってきたXMLのデータを配列にいれるところまでを行いました。いよいよ最後の仕上げ、商品情報を取り出して、HTMLに表示させます。[サンプルコード全文はこちら][楽天商品検索APIの仕様はこちら]■配列から商品情報の取り出しと表示 94// 連想配列から値を取得 95if($values){ 96 $item_temp = null; 97 foreach ($values as $data) { 98 if(isset($data['tag'])){ 99 // タグ名のよって分岐 100 switch ($data['tag']) { 101 case 'STATUS'://共通パラメータ:Status 102 if(isset($data['value'])){ 103 $status = $data['value']; 104 } 105 break; 106 case 'STATUSMSG': //共通パラメータ:Statusに特化したメッセージ 107 if(isset($data['value'])){ 108 $statusmsg = $data['value']; 109 } 110 break; 111 case 'COUNT'://全体情報:検索数 112 if(isset($data['value'])){ 113 $count = $data['value']; 114 } 115 break; 116 case 'ITEM': //商品情報:ITEMタグ開始 117 if($data['type'] == 'open'){ 118 $item_temp = array(); 119 }else if($data['type'] == 'close'){ //商品情報:ITEMタグ終 120 array_push($item_array,$item_temp); 121 $item_temp = null; 122 } 123 break; 124 default: 125 if(is_array($item_temp)){ //商品情報:ITEMタグ終了 126 if(isset($data['value'])){ 127 $item_temp['tag']ata['value']; 128 } 129 } 130 break; 131 } 132 } 133 } 134} 135 } 136// 以下からHTML表示部分前回でXMLから生成した配列構造体の各要素についてみていきます。(配列構造体の中にはXMLの要素名'tag'、値'value'、タイプ'type'が含まれています。)97行目でタグ名をまずみます。100行目のswitch文で、必要なタグ要素の値を取り出しています。101行目、106行目の判定で共通パラメタとなるStatus,StatusMsgの値取得を行います。 商品情報に関しては、<Item></Item>の中にはいっていますので117行目、ITEMタグの開始(タグのtypeがopen)と同時に配列を宣言し、119行目、ITEMタグの終了(タグのtypeがclose)までは127行目でそれぞれのタグ毎に商品情報を連想配列$item_tempに格納しています。連想配列$item_tempには各商品情報(<Item></Item>)毎に、それぞれの商品がItemの中の要素名'tag'をキーとしてその値が格納されます。120行目では、ITEMタグの終了(close)となりますので、商品情報の連想配列を通常の配列(item_array)に1商品として追加しています。これ以降は検索結果のHTML表示となります。 138 header("Content-type:text/html;charset=UTF-8");138行目ですが、ブラウザに返す、ヘッダ情報にコンテンツタイプの指定(text/html)と文字エンコーディングの指定(UTF-8)を入れます。172行目以降は楽天商品検索APIにリクエストを投げた結果をHTMLのテーブルタグで1件ずつ一覧表示をする部分になります。 172 <!-- API検索結果表示 --> 173 <font style="font-size:14px;"> 174 <?php if($status != ""){ ?>取得結果: <?=$status?><br><? } ?> 175 <?php if($statusmsg != ""){ ?>取得内容: <?=$statusmsg?><br><? } ?> 176 <?php if($count > 0){ ?>取得件数: <?=$count?><br> 177 <table width="80%" border="0" cellspacing="0" cellpadding="0" style="margin: 5px 0pt 0pt 0px;"> 174行目,175行目,176行目で共通パラメタ(Status,StatusMsg)からの情報を表示します。取得件数も0以上であれば表示します。 178 <tr><td bgcolor="#afafaf"> 179 <table width="100%" border=0 cellspacing=1 cellpadding=5 style="font-size:12px;"> 180 <tr align="center" style="background-color: #eeeeee;"> 181 <td width="8%" >写真</td> 182 <td width="47%">商品名</td> 183 <td width="15%">価格</td> 184 <td width="30%">ショップ名</td> 185 </tr> 186 <?php foreach ($item_array as $item){ ?> 187 <tr style="background-color: #ffffff;"> 188 <td width="8%" align="center"><a href="<?=$item['ITEMURL']?>" target="_top"><img src="<?=$item[IMAGEURL']?>" border=0></a></td> 189 <td width="47%" align="left"><a href="<?=$item['AFFILIATEURL']?>" target="_top"><font size="-1"><?['ITEMNAME']?></a></td> 190 <td width="15%" align="right" nowrap> <?=$item['ITEMPRICE']?> 円</td> 191 <td width="47%" align="left"><a href="<?=$item['SHOPURL']?>" target="_top"><font size="-1"><?=$itePNAME']?></a></td> 192 </tr> 193 <?php } ?> 194 </table> 195 </td></tr></table> 196 <?php } ?> 197 </font> 198 <!-- /API検索結果表示 -->178行目~185行目はHTMLのテーブルの見出し部分になります。商品情報は、「写真画像」「商品名」「価格」「ショップ名」を表示させます。186行目では、商品配列(item_array)にはいっている商品情報の連想配列を1つずつ取り出しています。XMLをパースした時、すべての商品情報(<ITEM>タグの中の要素と値)が含まれていますから、商品検索結果のHTMLを表示させるのに必要な情報(itemUrl,itemPrice,shopUrl,shopName,itemName)を連想配列から取り出して表示させています。以上でPHPのサンプルソースの解説は終了です。サンプルソースということでエラー処理や複雑なXMLのパース処理はなるべく簡略化していますが200行そこそこのソースで、楽天商品検索APIを使ったマッシュアップサイトが簡単に作成できます。今すぐ作成してみましょう!
2007.03.22
前回、商品検索APIに必要なURLの生成を行いました。実際に生成したURLを楽天商品検索に投げてみます。[サンプルコード全文はこちら]■商品検索APIからレスポンスの(サンプルコード解説)まずは共通出力パラメタを格納する変数を宣言していきます。(簡素化のため、最低限の情報しか取得しません)。 71 // --------- API取得処理 72 // API結果ステータス 73 $status = null; 74$statusには楽天商品検索APIの共通出力パラメタであるStatusが入ります。 75 // API結果メッセージ 76 $statusmsg = null; 7776行目、$statusmsgには楽天商品検索APIの共通出力パラメタであるStatusMsgが入ります。 78 // 商品情報の配列 79 $item_array = array(); 80 81 // 結果件数 82 $count = 0; 8379行目、上記の配列には商品情報が配列となってはいります。82行目には楽天商品検索APIの出力パラメタである全体情報の検索数が入ります。 84 // 商品検索ボタンを押された時、APIにリクエストを投げる 85 if( isset($_REQUEST['submit']) && $_REQUEST['submit'] == "商品検索" ){ 8685行目では商品検索のボタンが押されたとき、つまりリクエストフォームから"submit"の値が送信されてきたとき実際に楽天商品検索APIへのリクエスト処理を開始します。 87 $contents = file_get_contents($api_url); 8887行目で69行目迄で生成したURLに対してPHPのfile_get_contents関数(ファイル/URLの内容を全て文字列に読み込む)で楽天商品検索APIから情報を取得します。楽天商品検索APIからの情報はXMLというフォーマットで返ってきます。XMLのフォーマットを各データ要素に分解することをXMLパース、といいます。 89 // XMLをパースして構造体(values)に入れる 90 $parser = xml_parser_create('UTF-8'); 91 xml_parse_into_struct($parser,$contents,$values); 92 xml_parser_free($parser); 9390行目、xml_parser_create関数は指定した文字エンコーディング('UTF-8')でXMLパーサーを生成します。91行目、xml_parse_into_struct関数ではAPIから取得したXMLを配列構造体($values)に要素毎に格納します。92行目では90行目で生成したXMLパーサを開放する処理を行っています。こちらの配列構造体ですが、XMLの各要素毎にXMLのタグ(要素)名、要素値、タイプ(Open/Close)等が格納されています。ちなみに検索キーワードを「チーズケーキ」価格の範囲を1800円~2000円とした場合の楽天商品検索APIからのレスポンスはこのようなフォーマットのXMLになります。次回は上記の配列から値を取り出し、いよいよ商品検索結果の表示を行います。
2007.03.16
前回では商品検索のHTMLフォームを表示させました。今度はこのフォームに実際にキーワードと価格を入力して「商品検索ボタン」を押してみます。商品検索結果一覧が表示されます。今回は入力された内容が楽天商品検索APIにどういった形で投げられているのかをみていきます■商品検索APIへのURL生成サンプルコード全文はこちら 1 <?php 2 // 3 // 楽天商品検索API の利用サンプルコード (PHP) 4 // --------------------------------------------------------------- 5 // 以下を変更してPHP4/5が動作する公開領域におくだけでOK 6 // 詳細な仕様は以下を参照 7 // - 楽天ウェブサービス- http://webservice.rakuten.co.jp/ 8 // 9 // UTF-8で保存すること 10 /* ---------------- 以下、変更部分 ------------------------------ */ 11 12 // 自分のディベロッパーID 13 14 $DEVELOPER_ID = "自分のディベロッパーID"; 15 16 //自分のアフィリエイトID 17 18 $AFFILIATE_ID = "自分のディベロッパーID"; 19 20 /* ---------------- 以上、変更部分 ------------------------------ */14行目ですが自分で取得したディベロッパIDを入れるようにしてください。デベロッパーIDの取得(楽天会員登録もこちらから)18行目ですが自分で取得したアフィリエイトIDを入れるようにしてください。 22 //--------- API毎の固定値 23 // API名 24 $API_NAME = "楽天商品検索API"; 25 26 // APIのURL 27 $API_BASE_URL = "http://api.rakuten.co.jp/rws/1.3/rest"; 28 29 //オペレーション名 30 $OPERATION = "ItemSearch"; 31 32 //バージョン 33 $API_VERSION = "2007-02-14"; 34 35 //--------- リクエストパラメタの取得とAPIへのリクエストURL生成 3624行目は特に変更の必要はありません。26行目ですが、楽天商品検索APIへのリクエストURLになります。楽天商品検索API/オンラインドキュメントのリクエストURLの仕様を確認するようにしてください。30行目ですが変更の必要はありません。32行目ですが、現行のバージョンは'2007-02-14'となっています。 37 // リクエストURL生成 38 $api_url = sprintf("%s?developerId=%s&affiliateId=%s&operation=%s", $API_BASE_URL,$DEVELOPER_ID,$AFFILIATE_ID,$OPERATION); 3938行目で、楽天商品検索APIへのリクエストURLを生成しています。PHPのsprint関数は文字列のフォーマット関数です。商品検索APIの共通パラメタである、1.ディベロッパID、2.アフィリエイトID、3.操作のパラメタを持ったURLを生成しています。 この時点で生成されたURLは以下のようになります。 http://api.rakuten.co.jp/rws/1.3/rest? developerId=[YOUR_developerID] affiliateId=[YOUR_affiliateID] &operation=ItemSearch 40 //APIへのパラメタの連想配列 41 $api_params = array( 42 "keyword" => "", 43 "version" => $API_VERSION, 44 "shopCode" => "", 45 "genreId" => "", 46 "catalogCode" => "", 47 "hits" => "", 48 "page" => "", 49 "sort" => "", 50 "minPrice" => "", 51 "maxPrice" => "", 52 "availability" => "", 53 "field" => "", 54 "carrier" => "", 55 "imageFlag" => "" 56 ); 5741行目~56行目ですが、楽天商品検索APIに投げることができる(有効な)サービス固有パラメタの連想配列になります。連想配列とは"キー"とそれに紐付く"値"がセットになった配列のことをいいます。APIバージョン(version)を初期値としてしています。各パラメタの仕様は楽天商品検索API/オンラインドキュメントを確認するようにしてください。 58 // リクエストパラメタ取得 59 reset($api_params); 60 while(list ($key, $val) = each($api_params) ){ 61 if(isset($_REQUEST[$key]) && $_REQUEST[$key] != ""){ 62 // リクエストパラメタにあれば、APIへのURLに追加 63 $api_url = sprintf("%s&%s=%s",$api_url, $key, urlencode($_REQUEST[$key])); 64 $api_params[$key] = $_REQUEST[$key]; 65 }else if(isset($api_params[$key]) && $api_params[$key] != ""){ 66 // パラメタにあれば、APIへのURLに追加 67 $api_url = sprintf("%s&%s=%s",$api_url, $key, urlencode($api_params[$key])); 68 } 69 }59行目で配列の初期化を実施しています。60行目から、楽天商品検索APIの各固有パラメタについて、処理を行います。61行目で固有パラメタについて、フォームからの値($_REQUEST[パラメタ名])があれば、63行目で商品検索APIへのリクエストURLに追加しています。APIに渡すパラメタの値はurlencode関数を使ってエンコードした値を使うようにしてください。$_REQUESTはリクエストの内容(フォームからGET,POSTの両方のメソッドで渡ってくる)を取得するPHPのスーパーグローバル変数です。上記で楽天商品検索APIからのURL生成は終了です。こちらで検索キーワードを「チーズケーキ」上限価格を3000円とした場合の楽天商品検索APIへのリクエストURLは以下のように生成されます。 http://api.rakuten.co.jp/rws/1.3/rest? developerId=[ディベロッパID] &affiliateId=[アフィリエイトID] &operation=ItemSearch &keyword=%E3%83%81%E3%83%BC%E3%82%BA%E3%82%B1%E3%83%BC%E3%82%AD &version=2007-02-14 &maxPrice=3000次回では上記で生成したURLを実際に楽天商品検索APIになげてみます!
2007.03.12

こちらでは楽天商品検索APIを使ったPHPの実装例について簡単なサンプルコードを用いて解説を行います。■動作環境- PHP4の実行環境■サンプルソースご利用の際の注意事項・ここで掲載するプログラムに関するサポートは一切しておりません。 ・ここで掲載するプログラムで発生した直接的及び間接的に生じた損害について弊社は一切責任を負いませんのでご了承ください。 ■楽天商品検索API/サンプルコード概要[全文はこちら]・PHPが動作するWEBサーバのドキュメント公開領域に設置するとそのまま動作します。・拡張子は.phpとなっていますが適宜WEBサーバの仕様にあわせて変更してください(.phtml等)・サンプルコードのファイルは文字エンコーディングをUTF-8で保存するようにしてくださいサンプルコードの動作の流れは以下になります。1) 商品検索キーワード等を入力するHTMLフォームをブラウザ上に表示します2) 商品検索キーワードが入力された場合、楽天商品検索APIに対して所定のフォーマットでリクエストを送ります3) 楽天商品検索APIから受け取ったレスポンス内容から、ステータス(状態)情報や商品情報の切り分けを行います。4) 検索結果の商品情報をHTMLでブラウザ上に表示します。■実行イメージ■はじめに(サンプルコード解説)まず、サンプルソースitem_search.phpを利用しているWEBサーバの公開領域においてみましょう。ファイルの文字エンコーディングの種類はUTF-8で保存するようにしましょう。ブラウザに以下のような入力フォームをもったHTMLが表示されます。サンプルコードで最初に表示されるHTMLは以下のような内容になっています。 1 <html lang="ja"> 2 <head> 3 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 4 <title>楽天商品検索API/楽天ウェブサービス</title> 5 </head> 6 <body bgcolor="#ffffff" TEXT="#333333" LINK="#3333cc"> 7 8 <!-- タイトル --> 9 <h1 style="font-size:16px;font-weight:bold;">楽天ウェブサービス</h1><hr size="1" noshade>楽天商品検索API<hr siz e="1" noshade> 10 <!--/タイトル --> 11 12 <!-- HTMLフォーム表示 --> 13 <form action="item_search.php" method="post"> 14 <table width="80%" border="0" cellspacing="0" cellpadding="0" style="margin: 5px 0pt 0pt 0px;"> 15 <tr><td bgcolor="#afafaf"> 16 <table width="100%" border=0 cellspacing=1 cellpadding=5 style="font-size:12px;"> 17 <tr><td style="background-color: #eeeeee;">検索キーワード</td><td style="background-color: #ffffff;"> 18 <!-- キーワード入力テキストボックス --><input type="text" name="keyword" value="" size="30"> 19 </td></tr> 20 <tr><td style="background-color: #eeeeee;">価格</td><td style="background-color: #ffffff;"> 21 <!-- 最小価格入力テキストボックス --> 22 <input type="text" name="minPrice" value="" size="20"> 円 23 ~ 24 <!-- 最上価格入力テキストボックス --> 25 <input type="text" name="maxPrice" value="" size="20"> 円 26 </td></tr> 27 </table> 28 </td></tr></table><br> 29 <input type="submit" name="submit" value="商品検索"> 30 </form> 31 <!-- HTMLフォーム表示 --> 32 33 <!-- API検索結果表示 --> 34 <font style="font-size:14px;"> 35 </font> 36 <!-- /API検索結果表示 --> 37 38 </body> 39 </html>ブラウザ上でユーザーから入力してもらう項目は3つしかありません。(もちろん楽天商品検索APIはこれ以外の入力パラメタも多数用意されています)。・商品の検索キーワード [フォーム名 'keyword' ] ---- 18行目・商品の下限価格 [フォーム名 'minPrice' ] ---- 22行目・商品の上限価格 [フォーム名 'maxPrice' ] ---- 25行目また実際にこのフォームを実行する際に押す、submitボタンも配置されています。・商品検索ボタン [フォームパラメタ名 'submit'] ---- 29行目このフォームから入力された値(検索、上限・下限価格)が、実際にどういった形で楽天商品検索APIに渡されてどういった形式で商品情報が取れるのか、次回から実際のサンプルソースをみながら解説していきます。
2007.03.12

楽天カタログ検索API(CatalogSearch)の入力パラメーターのソート順に関して、以下の変更を行いました。変更前:+reviewNum:レビュー件数(昇順)-reviewNum:レビュー件数(降順)変更後:+reviewCount:レビュー件数(昇順)-reviewCount:レビュー件数(降順)ご利用の方にはご迷惑をおかけしておりますが、何卒よろしくお願いいたします。
2007.02.28
本日、楽天ウェブサービスより楽天トラベルに関する3つのAPI追加提供を開始しました。楽天トラベル施設情報API楽天トラベル施設情報APIは、施設の詳細情報を取得することが可能なAPIです。楽天トラベル空室検索API楽天トラベル空室検索APIは、(楽天トラベル地区コードAPIから得られる)地区コード、緯度経度、施設番号などから予約可能な部屋を検索することができます。デベロッパーは、リアルタイムな空室情報を得ることができます。楽天トラベル地区コードAPI楽天トラベル地区コードAPIは、楽天トラベルで用いられる地区コードの情報を取得することが可能なAPIです。
2007.02.28

自転車の完成車・パーツのレビューをユーザーが自由に投稿できるサイトです。■特徴ユーザー視点のレビューと一緒に、関連ワードから商品情報を楽天商品検索APIで取得、表示します。■アプリケーションURL http://charic.jp/■作成者 Abuttha 様■画面例
2007.02.21

楽天商品のアフィリエイトタグを手軽に作るツールです。■特徴アフィリエイトIDを設定すれば、毎回登録する必要がなくなります。■アプリケーションURL http://a-db.net/rws/ ■作成者 shinsuke 様■画面例
2007.02.21

楽天の商品をサイトで紹介したい人の為のコード自動生成サイトです。■特徴・楽天の全ジャンル商品のアフィリエイトコードを簡単操作で作成できます。・同時にお買い物もできます。■アプリケーションURL http://rakuppe.nekozou.com/ ■作成者 ねこぞう 様■画面例
2007.02.21

子育て支援に関するコミュニティサイトです。■特徴ベビーアイテムランキングやベビーアイテムショッピング情報を検索できます。■アプリケーションURL http://bebisupe.net/ ■作成者 noriya 様■画面例
2007.02.21

インターネット上の様々なイベント情報をブックマーク感覚で簡単登録できます。■特徴映画公開日や商品発売日などのイベント情報ページに、そのキーワードに関連した商品情報を楽天商品検索APIで取得、表示します。■アプリケーションURL http://clip.eventcast.jp/ ■作成者 株式会社イベントキャスト 様■画面例
2007.02.21

指定したキーワードの商品を、新着順・価格順などで表示するブログパーツです。■特徴・ブログやWEBサイトに使えるアフィリエイトパーツです。・ブログに貼り付けておけば、リンクが自動で更新されるブログパーツです。■アプリケーションURL http://doyadosearch.blog90.fc2.com/ ■作成者 どやど様■画面例
2007.02.21
楽天市場では、2007年2月25日(日)に予定しております定期メンテナンスの際に、楽天市場のジャンルの内容を一部変更いたします。今回のジャンル変更では全ジャンルに対して、新規ジャンルの追加や既存ジャンル名の名称変更、及びジャンル階層の移動や削除を行います。このジャンル体系の変更後からは、楽天ジャンル検索APIをはじめ、ジャンルが入出力パラメーターに含まれるAPIの出力結果にも新しいジャンル体系が反映されます。ジャンル体系をキャッシュして、ご利用いただいている方は、特にご注意ください。今後、特に告知なくジャンル体系を変更する場合がありますので、定期的に新しい情報を取得していただければと思います。
2007.02.21
本日、楽天ウェブサービスより、楽天カタログ検索APIの追加提供を開始しました。楽天カタログ検索API楽天市場の「価格ナビ」で提供されるカタログの情報(ただし、DVDジャンルを除く)を取得することが可能なAPIです。これに伴い、「楽天商品検索API(ItemSearch)」でカタログに紐づく商品を取得できるようになりました。
2007.02.15
本日、楽天ウェブサービスの全てのAPIでJSON(JavaScript Object Notation)形式でのデータ提供が開始されました。
2007.02.15
本日、「カタログ検索API」が追加されたことに伴い、既存のAPIで以下の機能が追加されました。■楽天商品検索APIがカタログ対応「楽天商品検索API(ItemSearch)」でカタログに紐づく商品を取得できるようになりました。■楽天商品検索API等に機能追加5種類のAPI(楽天商品検索、楽天商品コード検索、楽天書籍検索、楽天CD検索、楽天DVD検索)の入(出)力パラメーターに「商品画像の有無」が指定(あるいは出力)できるようになりました。
2007.02.15

レンタルブログサービス「teacup.ブログ“AutoPage”」に楽天アフィリエイト挿入ツールを導入していただきました。■特徴ブログ投稿フォームからワンクリックで「楽天アフィリエイト」の商品を検索し、楽天アフィリエイトIDの入ったタグを投稿フォームに挿入ができます。■アプリケーションURL http://autopage.teacup.com/ ■作成者 株式会社ティーカップ・コミュニケーション 様■画面例
2007.02.07

アフィリエイト商品の検索できるツールとして提供してきた「はまぞう」に 「楽天市場」の商品データを追加していただきました。■特徴はてなブログの編集画面にある「商品紹介」ボタンをクリックし、 ワード検索を行うだけで商品紹介タグを生成でき、手軽にブログに「楽天市場」や「楽天ブックス」の商品を紹介することが可能となります。■アプリケーションURL http://d.hatena.ne.jp/■作成者 株式会社はてな 様■画面例
2007.02.07

「はてな検索」の検索項目に楽天のAPIからの商品情報を追加していただきました■特徴「楽天市場」の膨大な商品群から目的の商品を「人気順」「価格が高い順」「価格が安い順」でソートができ検索することができます。■アプリケーションURL http://search.hatena.ne.jp/■作成者 株式会社はてな 様■画面例
2007.02.07

はてなで提供中のAmazon.co.jpの書籍、CD、DVD、ゲーム等の個々の商品を紹介する「ASIN/ISBN」ページに加え、新たに「楽天商品ページ」を追加■特徴楽天の商品画像、商品説明、価格・店舗情報等をはじめ、ブログで商品を紹介するためのボタンや購入ページに進むことができるボタンを設け、ユーザーに利便性をもたらします。■アプリケーションURL紹介ページの例:「ウェブ進化論」(楽天ブックス)http://d.hatena.ne.jp/rakuten/book/11563690■作成者 株式会社はてな 様■画面例
2007.02.07
昨日1/31、楽天ウェブサービスより2種類のAPIの追加提供を開始しました。是非、ご利用ください!楽天CD検索API楽天ブックスで販売されているCDの情報を取得することができるAPIです。キーワードでのCD検索をはじめ、ジャンル別の絞込み検索が可能です。楽天DVD検索API楽天ブックスで販売されているDVDの情報を取得することができるAPIです。こちらも、キーワードでのDVD検索をはじめ、ジャンル別の絞込み検索が可能です。
2007.02.01

指定したキーワードの商品を、新着順・価格順などで表示するブログパーツです。■特徴キーワード指定型なので、狙った商品を正確に表示できます。■URLhttp://doyadosearch.blog90.fc2.com/■作成者どやど様■画面例
2007.01.24

商品やショップの検索サービスを提供しています。■特徴Webサービスを利用したマッシュアップサイトです。最近は検索機能などにAjaxを使用しより使いやすいサイトになるよう工夫しています。■URLhttp://commons-style.com/-/rakuten/ItemSearch■作成者坂口様■画面例
2007.01.24

APIをご利用いただき、アプリケーション・ウェブサイト等作った方は、是非、へご連絡ください。アプリケーション・ウェブサイト以外にも、ライブラリ等も歓迎します。弊社側で確認の上、本サイトでご紹介させていただきます。尚、ご連絡いただける場合は、以下の情報を記載してください。■アプリケーション名(サイト名)■概要(35文字程度)■特徴(35文字程度)■アプリケーションURL■作成者(個人の場合、ニックネームも可)■作成者URL※いただいた全ての事例を紹介できるわけではないことをご了承ください。※いただいた事例を掲載する場合は、弊社側で画面キャプチャーを作成させていただきます。
2007.01.23
楽天ウェブサービスセンターを開設した直後から、「楽天で配信しているRSSはありますか?」というお問合せをいただきました。実際、以下に楽天グループで配信されているRSS一覧があります。是非、APIを補完する意味でもご活用ください。■楽天グループのフィード一覧(尚、これらのRSSは、ウェブサービスよりも前からリリースされていたものです。)
2007.01.19
昨日、楽天ウェブサービスをリリースさせていただいた結果、以下のニュースサイトで掲載していただきました。◆@IThttp://www.atmarkit.co.jp/news/200701/17/rakuten.html◆ITMediahttp://www.itmedia.co.jp/news/articles/0701/17/news074.html◆RBBTODAYhttp://www.rbbtoday.com/news/20070117/37657.html◆InternetWatchhttp://internet.watch.impress.co.jp/cda/news/2007/01/17/14487.html◆IT PLUShttp://it.nikkei.co.jp/internet/news/index.aspx?n=MMITba001017012007◆japan.internet.comhttp://japan.internet.com/webtech/20070117/3.html◆CNETJapanhttp://japan.cnet.com/news/media/story/0,2000056023,20340947,00.htm◆ベンチャーナウhttp://www.venturenow.jp/news/2007/01/17/2008_014021.html◆nikkeibp.nethttp://www.nikkeibp.co.jp/news/it07q1/522896/◆sankei WEBhttp://www.sankei.co.jp/keizai/it/070118/itt070118000.htm◆asahi.comhttp://www.asahi.com/business/update/0118/003.html◆ITProhttp://itpro.nikkeibp.co.jp/article/NEWS/20070117/258983/◆六本木経済新聞http://roppongi.keizai.biz/headline/797/
2007.01.18

「lowest price finder」は、ページ上の商品の価格情報をコマースサイトから取得するFirefox2向けプラグイン。■特徴1. プラグインをインストールし、2. ブラウザ上で、検索したい商品名を選択し、右クリックすると、3. 最安値が検索できます。■URLhttp://api.totoro.ws/■作成者アーティキュレイト株式会社 様■画面例(画面は、ページ上で右クリックした場合のの例です。)
2007.01.15

コンテンツマッチ・アフィリエイト「NOZOMI」は、ページ内コンテンツにマッチするアフィリエイトリンクを自動的に作成するサービスです。「NOZOMI」を使うことで、自分のページに自動的にアフィリエイトリンクを挿入することができます。■特徴・スクリプトを自分のページに貼るだけで、自動的にアフィリエイトリンクが作成されます。・自分のアフィリエイトIDを用いれば、自分のアフィリエイト成果とすることができます。■URLhttp://nozomi.super-express.org/■作成者アーティキュレイト株式会社 様■画面例(画面は、表示されるコンテンツマッチアフィリエイトの例です。)
2007.01.15

「Phot.on」は、ファッションスナップを投稿できるコミュニティコミュニティサイトです。■特徴・ユーザーが自分や友人のお気に入りのスナップを投稿可能なサービスです。・ファッションスナップの関連ワードから商品検索APIで取得、表示されます。■URLhttp://photon.st/■作成者株式会社カヤック 様■画面例(画面右下部分に、楽天商品検索APIを用いた商品情報が掲載されています。)
2007.01.15
全51件 (51件中 1-50件目)


![]()