ブログパーツにDVDの情報を表示する
前項で取得したDVDの情報をブログパーツに表示してみます。
gooランキング取得時に作成したgetRank.php, getRank.js の2つのファイルをそれぞれgetRankAmazon.php, getRankAmazon.js の名前でコピーしてコードを以下のように修正します。
include('Util.class.php');
# 略
$util = new Util();
$_array['item'] = $rss->items;
// RSS内のitemの数分ループする
foreach($_array['item'] as $k=>$v){
// 「女優名+ドラマ」でDVDを検索
$amazonResult = $util->getDvdInfo($v['title'] . ' ドラマ');
// 検索したDVD情報を配列に追加する
$_array['item'][$k]['dvdTitle'] = $amazonResult['dvdTitle'];
$_array['item'][$k]['dvdImage'] = $amazonResult['dvdImage'];
$_array['item'][$k]['dvdUrl'] = $amazonResult['dvdUrl'];
}
Utilクラス内のgetDvdInfoメソッドを用いてランキング内の女優が出演しているドラマのDVDを検索して、結果を配列に追加します。
for (i=0;i<data.item.length;i++) {
var rank = data.item[i];
html += '<tr><td bgcolor="#FFFFFF" align="center"> ' + rank.title + '<br />' ;
html += '<img src=' + rank.dvdImage + '><br />';
html += '<a href="' + rank.dvdUrl + '" target="_blank">' + rank.dvdTitle + '</a><br /></td></tr>';
}
JSON内のDVDの情報を取り出してDVDジャケット画像、DVD名、Amazon内のDVDページへのリンクを張ります。Service_Amazon実行時にアソシエイトIDを指定している場合は自動的にアソシエイトIDを含めたアフィリエイト用のURLになります。
ブログの管理画面からgetAmazonRank.jsを呼び出すようにHTMLを編集してブログにアクセスすると、ランキングを表示している部分にDVDの情報が追加されて次のように表示されます。
まとめ
JSONPを使うと、同一ドメイン内でしかデータ通信ができないというJavaScriptの制約を超えて外部サーバのデータを取得できます。データを取得する部分をアレンジすることで、サンプルのようにFC2、DTIブログといった既存サービスにブログパーツをはじめとしたオリジナルの機能を持たせることも可能です。
Service_JSONを利用することで、前回の記事で紹介したMecabによるキーワード検索を応用して、ブログ内のキーワードに応じてAmazonの検索結果やYoutubeの検索結果、Google Mapsの検索結果などをブログパーツとして表示することが比較的容易にできます。
さまざまなWeb APIを利用してマッシュアップサイトを作成する際に、Service_JSONは非常に有効であると考えています。

