ASINから商品データを取得する方法
Amazonの商品データを取得する方法をメモ。
今回は、ASINで検索して商品データを取得する方法です。
ASINとは?
Amazon.co.jp ヘルプ: ISBN/ASINについて
ASINは「Amazon Standard Identification Number」の略で、Amazonグループが取り扱う、書籍以外の商品を識別する10けたの番号です。
CD、DVD、ビデオ、ソフトウェア、ゲームなど、書籍以外の商品の詳細ページに記載されています。
Amazonでは、書籍はISBNという番号で識別されています。
ISBNは、「International Standard Book Number(国際標準図書番号)」の略で、書籍を識別する10桁または13桁の番号です。
和書、洋書の詳細ページに記載されています。
とりあえず、ここでは「ASIN」と「ISBN」をまとめてAmazonの商品識別番号として扱い、単に「ASIN」といった場合でも「ISBN」を含めて扱うことにしておきます。
AmazonのProduct Advertising APIでは、ASINやISBNをまとめて「ItemId」という項目名で扱っています。
ASINで検索
それでは、早速ASINで商品データを取得してみましょう。
前回用意したProduct Advertising APIを利用するライブラリーを使います。
ここでは、CodeIgniterで利用する方法をメモしときます。
CodeIgniterのモデルで「Search」クラスを作成、検索用に「search_asin」メソッドを作成します。
XMLデータをPHPの配列データに変換する「xml2array」メソッドは、以下のような内容です。
(ライブラリーのAmazonクラスのメソッドとして用意してあります。)
上記のsearch_asinメソッドでASINを検索すると、Amazonから該当商品のデータを取得できます。
商品データ(配列)のデバッグ表示
PHPで配列をデバッグ表示するとき、見やすくするために配列表示用のライブラリーを利用してみます。
以前使った「debuglib」が便利だったので、これを使いましょう。
CodeIgniterで「debuglib」を使う方法は、次のサイトで解説されていました。
PHP/CodeIgniter/debuglib_helper - TOBY SOFT wiki
(1) GitHubからライブラリーをダウンロード
https://github.com/everton-ers/debuglib
画面右側にある「Clone or download」という緑色のボタンをクリックして「Download ZIP」を選びます。
ダウンロードした「debuglib-master.zip」を解凍します。
(2) 「debuglib.php」のコピーとリネーム
中にあった「debuglib.php」をCodeIgniterのヘルパーのフォルダにコピーして、さらに「debuglib_helper.php」というファイル名に変えます。(/application/helpers/debuglib_helper.php)
(3) ヘルパー関数として呼び出し
CodeIgniterのコントローラーに「$this->load->helper('debuglib');」と書いて、ヘルパー関数として呼び出せるようにしておきます。
(4) 配列を整形して表示
CodeIngiterのビューで「<?php print_a($amazon_response); ?>」などと書けば、Amazonのレスポンスデータ(配列)を綺麗に表示してくれます。
ISBN = 4295003859 は「スラスラ読める JavaScript ふりがなプログラミング」という本です。
![スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ) スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)](https://images-fe.ssl-images-amazon.com/images/I/51XVy7grx2L._SL160_.jpg)
スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)
- 作者: リブロワークス,及川卓也
- 出版社/メーカー: インプレス
- 発売日: 2018/06/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
ItemIdにASINやISBNをセットして検索すると、上記のような商品データがAmazonから取得できます。
データは階層構造になっているので、必要な情報(商品名など)を取り出して、利用できます。
以上で、ASINで商品データを取得することができました。