FC2ブログ
    まとめ買いがお得なオンラインセレクトショップ ETERNITY
2009年08月07日 (金)
巷でイロイロ話題になっているAmazonのAPIですが、私自身はAmazonのAPIを試したことがなかったのでPHPのリハビリと勉強がてらいじってみた日記です。
基本的にいろいろな方が公開している情報を組み合わせただけです。

あ、そうそう
PHP 5.2.6で試しますた。
まぁ、
本題に入る前に作業用BGMとして、うざやかな曲でも聞きながらどうぞ(笑)


-- Amazonの引用 --
重要:2009年8月15日をもって、Product Advertising API は、署名認証を含まないリクエストを一切処理しなくなります。現在、Product Advertising API を利用されている方は、今すぐご利用中のすべてのリクエストに署名認証を含める準備を開始いただけますようお願いいたします。署名認証を含んだリクエストは、今すぐご利用いただけますので、Developer Guide またはDeveloper Guide - リクエストの署名認証について(日本語参考訳)をご覧の上、準備を行っていただけますようお願いいたします。ご不明な点がありましたら、よくあるご質問をご参照ください。
------------------
fmfm認証が必要になるのね。


Fate/unlimited codes ねんどろいど セイバー・リリィ

認証部分など基本的な部分は、もやしさんのとこを参考にしました。
XMLのパースについてはyamaさんのところを参考にしました。
基本的な部分を作成後Amazonから返ってきた値(XML)をばらして、「にっこにこAAツール」っぽく表示することにしました。


「もやし日記」
http://d.hatena.ne.jp/p4life/20090510/1241954889

「YAMA'S MEMORANDUM」
http://memorandum.yamasnet.com/archives/Post-163.html

「にっこにこAAツール」
http://nikkoniko.org/


とりあえず作成したものは動作試験のためland.to鯖に放り込んでみました↓
http://eternity.vs.land.to/test_land2.php


----- ここから先はほとんどメモっぽいです -----


基本的なリクエストを作成部分で、パラメータとして ResponseGroup を追加して、カンマ区切りで欲しい値を記述。
$params['ResponseGroup'] = 'ItemAttributes,Images,EditorialReview,Reviews';

そんで、検索するものは2パターン試してみた。
ItemLookupでASINコード渡しをするか、ItemSearchでSearchIndexと商品名を渡す方法。

//ASINコードで検索する場合はこんなイメージ
$params['Operation'] = 'ItemLookup';
$params['ItemId'] = 'B00200JV4E';


//製品名などで検索する場合はこんなイメージ
$params['Operation'] = 'ItemSearch';
$params['SearchIndex'] = 'Toys';
$params['Keywords'] = 'セイバー・リリィ 全て遠き理想郷'; // ← 文字コードは UTF-8



もやしさんのコードで吐き出される $url の値をsimplexml_load_string関数を使ってパースする。
$response = file_get_contents($url);
$parsed_xml = simplexml_load_string($response);



そしたらあとはどうにでもなるので、例えば商品名取る時はこんな感じ。
$Title = $parsed_xml->Items->Item->ItemAttributes->Title;


弾幕となる商品コメントはここの値↓から取得したんですが、コメントが配列になってるからループして全部取り出し。
$parsed_xml->Items->Item->CustomerReviews->Review

弾幕の表示は marquee タグなので、スクロールの表示スピード(scrollamount)値にランダムで数値を割り当てることでばらつき感を出しました。
なんとなく思いつきだったのでスピード値となるランダム数は3~9あたり。
まぁ、ここら辺はこんな感じで適当に。
srand((double)microtime()*1000000);
$number = round(rand(3,9));


なんか「Product Advertising API」の話から「にっこにこAAツール」の作り方みたいな状態になってきたので、ここら辺で終了しまふ。

かんなぎ ねんどろいど ナギ


普段PHPで開発している方とかXMLを使っている方にはなんら簡単な話なのかもしれませんが、私みたいに趣味でPHPなんかで遊んでるような人だと何もかも新鮮なのですよ~♪

まぁ、今回は全力で手抜作業だったのでそのうちもうちょっといじってみます(笑)
今回作成したものがFreehostia鯖で表示してくれなかったのでland.toに放り込みましたが、なんで動かないのか要調査ですねぇ。

最後に、
AmazonのAPIって結構面白いのでAmazonのアフィリエイトとか興味ある方は試してみるといいかも~。

テーマ:日記・日誌
ジャンル:コンピュータ
コメント
この記事へのコメント
コメントを投稿
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック