- 2008.07.17 Thursday
- Amazon APIのサンプル〜『マニアンミュージック』
- Amazon APIの利用
メジャーじゃない曲を登録して紹介する、まねきねこプロジェクトのサービス『マニアンミュージック』に、AmazonのAPIとの連動を実施してみました。
まず、AmazonでAPIキーを取得します。このページの『 Create your free Amazon Web Services account』という箇所でAPIキーを作ります。
ZIPCodeを3桁にしないと『The address you provided appears to be invalid. Please check the required fields and try again』というエラーが出て登録ができない、という不具合があってしばしてこずりました。
メール受信後に認証してから、このページでYour Access Key IDをshow。これでアクセスキーIDを取得します。
PEARは
の2つを用います。
上記PEARの設置ですが、サーバによってはPEARのパスを通せないところもあるので、ルート直下に.htaccessをおいて、php_value include_path アドレスなどと、アドレスに追加するのもいいかもしれません(複数箇所を指定する場合は「:」で区切る)。include_pathについて詳しく知りたい方は、デジットさんのPHPが参考になります。
ロリポップサーバの場合では、ルートのcommonフォルダ以下のファイルを参照する場合、
とすればOK。記述順に優先されて読み込むので「.」であるワーキングディレクトリへの参照を先にしてしまうと、バージョンが異なる場合、古いファイルを参照しバージョン違いの為エラーを返すので注意です。php_value include_path "/home/sites/lolipop.jp/users/ユーザ/web/common:.:/usr/local/lib/php:/usr/local/lib/php/Smarty"
上記の手順などを用いて、PEARへのパスがきちんと通っていれば、以下のような感じで、データを取得できます。データは10件までしか取得できないので、取得を繰り返すループ処理を入れてます。ただ、これだと何万件というデータがひっかかった時大変なので、ある一定度取得したらループを抜けるようにしてます。
print_rで$resultの内容を表示してるので、以下のような内容が取得されるはずです。実行結果はこちらでご覧ください。print_rの出力結果にはHTMLタグが入ってないので改行はされません。内容をソースの表示で見ると随時改行されているはずです。$subid = 'アマゾンAPIキー';
$associd = 'アソシエイトキー';
$objAmazon = new Services_AmazonECS4($subid, $associd);
$objAmazon->setLocale('JP');
$options = array();
$options['Keywords'] = "浜崎あゆみ";//検索キーワード
$options["Operation"]="ItemSearch";
$options['ResponseGroup'] = "EditorialReview,ItemIds,ItemAttributes,Images";
$SearchIndex="Music";//Books,Musicなど
$pageCnt=1;
$result=array();
while($pageCnt<5){
$options["ItemPage"]=$pageCnt;
$re = $objAmazon->ItemSearch($SearchIndex, $options);
if(count($re["Item"])==0){
//これ以上結果が無い
break;
}
array_push($result,$re);
$pageCnt++;
}
print_r($result);
プログラムに慣れた方ならわかると思いますが、例えばタイトルの「GUILTY(DVD付)」を取得するためには
で、取得できます。アソシエイトURLであれば$result[0]["item"]["ItemAttributes"]["Title"]
となります。$result[0]["item"]["DetailPageURL"]
一方、小さな画像であれば
で取得できますし、その画像の縦サイズであれば、$result[0]["item"]['SmallImage']['URL']
で取得できます。意味がわからない人は、Googleで『PHP 連想配列』と検索するといいかと思います。配列が分からない人は、まず配列を知ることからはじめましょう。$result[0]["item"]['Height']['_content']
尚、『マニアンミュージック』のアドレスにサブドメインを適用させ、以下のアドレスが使えるようになりました。
http://lab.24th.jp/music/
マニアンミュージックをご覧の際は、このアドレスにてご覧ください。
参考サイト
今回記事を書くにあたり参考にしたサイトおよび今後役立つと思われるサイトです。
- amazon画像のサイズ変更に関して
- Amazon APIで取得した本情報の著者の扱いが難しい
- amazon WebサービスAPIサンプル WEBサービスAPIサンプルwiki
- ベストセラー情報を引き出す
- Google AJAX Search API でAmazon関連商品を表示してアフィリエイト
- Amazonが新しいAPI公開。業務処理が自動化へ。
| 開発関連 | 22:43 | comments(0) | trackbacks(0) |