スポンサードリンク

楽天ウェブサービスの新APIへの対応方法について。

楽天ウェブサービス(WEB SERVICE)は、新APIが登場したり、それに伴い旧APIが廃止になることがあります。

廃止になったAPIを利用して作成したプログラムは、動かなくなることがあります。

その場合は、新APIへ対応するため、プログラムの書き換えが必要です。

実際に楽天商品検索APIで、旧APIが廃止になりました。

当講座でも、旧APIで作成したプログラムがあるので、そのままでは動きません。

そこで一部、変更する必要があります。

ちなみに2016年1月現在、
楽天商品検索APIの最新バージョンは、「version:2014-02-22」です。

(1)中継プログラムを修正する。
まず、
Step8・中継プログラムを作成する
楽天ウェブサービスの中継プログラムを作成する方法について。

で掲載したプログラムを修正してください。

変わったのは、ファイル名(RakutenItemSearch.php)と、固定のフィールドです。

楽天商品検索APIの名前と、入力パラメーターに変化があったためです。

アプリIDは、新たに取得するか、
前のdeveloperIdでも今のところは動きます。

旧プログラム
保存先 C:\phpdev\www\rakuten\lib
ファイル名 ItemSearch.php

//固定のフィールド
$url = "http://api.rakuten.co.jp/rws/1.9/rest?";
$url .= "developerId=あなたのdeveloperId";
$url .= "&affiliateId=あなたのaffiliateId";
$url .= "&operation=ItemSearch";
$url .= "&version=2007-10-25";


新プログラム
保存先 C:\phpdev\www\rakuten\lib
ファイル名 RakutenItemSearch.php

//固定のフィールド
$url = "https://app.rakuten.co.jp/services/api/IchibaItem/Search/20140222?";
$url .= "applicationId=前のdeveloperIdか、新たに取得するapplicationIdのこと";
$url .= "&affiliateId=あなたのaffiliateId";
$url .= "&format=xml";


次は、出力パラメーターにも変化があったので、一部修正します。

(2)JavaScriptプログラムを修正する
各Stepに書いた「.js」ファイルのプログラムを、以下のように一部修正してください。

楽天商品検索APIの名前が変わったことにより、
呼び出す中継プログラム名も変えたことによるもの。

旧プログラム

var url = "../lib/ItemSearch.php";


新プログラム

var url = "../lib/RakutenItemSearch.php";


出力パラメーターに「Status」が無くなったことによるもの。

旧プログラム

function getData(data){
  var response = data.responseXML.getElementsByTagName('Response');
  var status = getValue(response[0], 'Status');

  if(!(status == "Success")){


新プログラム

function getData(data){
  var response = data.responseXML.getElementsByTagName('root');
  var status = response[0].getElementsByTagName('count')[0].firstChild.nodeValue;

  if(status == 0){


画像URLが複数取得出来るようになったことによるもの。

旧プログラム

var mediumImageUrlValue = getValue(item[i], 'mediumImageUrl');


新プログラム

var mediumImageUrls = item[i].getElementsByTagName('mediumImageUrls');
var mediumImageUrlValue = mediumImageUrls[0].getElementsByTagName('imageUrl')[0].firstChild.nodeValue;


いったん複数枚の画像を取得し、最初の画像だけを利用しているわけです。

以上のようにプログラムを変更すれば、
当講座に掲載したサンプルプログラム通りで動きます。

スポンサードリンク






楽天ウェブサービス初心者入門講座TOPへ