Amazon APIsの最近のブログ記事
Amazon S3 - Simple Storage Service
http://www.amazon.com/gp/browse.html/104-7144877-2699930?node=16427261
まだ詳しくは見ていませんが、REST/SOAP APIを利用が出来ます。
WSDLもあるのでAXISでクライアントを作り簡単に遊べそうかな!
SOAPのサーバも https://s3.amazonaws.com/soap とSSLで保護されているし、証明書もベリサインで問題なさそうなのでJavaで簡単に遊べそうです。
アマゾンランキング・あまがえるを見習って、右側のGoogle AdSense の下に、DVDとJPOPの2つを貼り付けてみました。 前々から好きなサイズと全ての画像を表示させたかったので、簡単にやってみました。
以前書いた記事の、Amazon.com XSLT Serviceを使い、下記のインターフェイスで貼り付けてあります。
http://xml-jp.amznxslt.com/onca/xml3?
t=[associates tag]&
dev-t=[developer’s token goes here]&
BrowseNodeSearch=575110&
mode=dvd-jp&
type=lite&
page=1&
locale=jp&
f=http://www.blogkid.com/AmazonWebServices/ads_amazon.xsl
このXSLは、綺麗でないのと、機能の課題としては件数の抑制と表示サイズの制御まで出来ればいいと思います。 あとデザイン力がある方が手を入れれば、更に良いモノが出来ると思います。(※スタイルシートは私のBLOGサイトと共通のファイルを使っています。 これも綺麗ではありませんが・・・)
このページの検索に使っているAmazonの機能は、BrowseNodeSearchですが、勿論KeywordSearchも可能です。
Google APIを使って、検索結果表示制御のXSLT Serviceも楽しいかもしれません。
アマゾンAPIが更新されました。(SDK 3.1)
「今までバージョンなど気にもしていませんでしたが・・・」
下記の対応がされているようです。
* International Encoding Fixed
* Japanese Characters Fixed
* Localized Availability Messages
* Better Error Reporting
* New Blended Search Feature
* Improved Text Stream Search
あと、SOAPを使ってCartへセットした時に戻るURLで表示するページの日本語化対応ですが、APIドキュメントに下記の情報がありましたのでSOAPでカート操作可能なのはUSのみになります。
API Guide、constraints_and_limitations.htm より抜粋
![]()
Amazon APIsを利用して、ショッピングカートへ商品をセットするJavaのサンプルコードを書いてみた。
サンプルコード:
AmazonAddCart.java
環境構築は、この記事を参考にして下さい。
尚、コードの修正すべき箇所は下記の3つになります。
1.Proxy環境であれば、コード内のコメントを参照して修正する。
2.associates tag と developer’s token を設定する。
3.Asin(ISBN)とQuantityはコード内に埋め込みなので、好きなように修正して下さい。
以下、実行結果
% java AmazonAddCart
102-5196641-8447345
http://www.amazon.com/exec/obidos/shopping-basket?cart-id=102-5196641-8447345%26associate-id="associates tag"%26hmac=Pld20vXfxpJ%2B4hWw5b%2BnD36z8lQ%3D
Google Hacks: 100 Industrial-Strength Tips & Tools
1行目がカートID
2行目が参照すべきURL。
→このURLをブラウザから参照すると指定した製品がカートへセットされている。
3行目はセットしたAsinの製品名を表示している。
今回は製品をショッピングカートへセットするだけの簡単なサンプルであるが、ここで取得したカートIDを使用して、この他にも下記の3つのサービスメソッドを使うことが出来る。
ModifyShoppingCartItemsRequest
GetShoppingCartItemsRequest
ClearShoppingCartRequest
※レスポンスの1つである参照すべきURLですが、どうやら英語のページのみ有効で日本語のページへの制御(遷移)は不明でした? 日本語のページへ制御(遷移)出来た方はコメントをお願いします。
※ちなみにHTMLからPOSTしてカートへ入れる interface は下記になります。
<form method="POST" action="http://www.amazon.co.jp/exec/obidos/dt/assoc/handle-buy-box=[ASIN number goes here]">
<input type="hidden" name="asin.[ASIN number goes here]" value="1">
<input type="hidden" name="tag-value" value="[Associates ID goes here]">
<input type="hidden" name="tag_value" value="[Associates ID goes here]">
<input type="hidden" name="dev-tag-value" value="[Developer Token goes here]">
<input type="submit" name="submit.add-to-cart" value="Buy from Amazon.co.jp">
</form>
【↓サンプル】
もの凄く簡単なコードですが、Amazon APIsを利用した和書を検索するJavaのサンプルコードを試してみた。
サンプルコード:
AmazonSearchTest.java
環境構築は、この記事を参考して下さい。
尚、コードの修正すべき箇所は下記の3つになります。
1.Proxy環境であれば、コード内のコメントを参照して修正する。
2."associates tag" と "developer’s token"を設定する。
3.検索条件はコード内に埋め込みなので、好きなように修正して下さい。
以下、実行結果
% java AmazonSearchTest
Total number of matches = 774
0: Javaゲームプログラミングアルゴリズム ¥ 2,800
1: ゲーム作りで学ぶJavaクラス設計入門―JDK1.4.1対応 構造化設計と対比して覚えるオジェクト設計 ¥ 2,000
2: Java API実用リファレンス Vol.3 JFC/Swi (3) ¥ 2,380
3: JavaデベロッパーのためのApache Ant入門 ¥ 2,400
4: Javaによるプロブラミング―アルゴリズムとデータ構造 ¥ 2,400
5: Java プログラミング辞典 サーバーサイド・データベース・ネットワーク 編 ¥ 2,600
6: EJB+J2EE入門―JBossとStrutsで作るWebアプリケーション ¥ 3,200
7: オープンソース徹底活用 EclipseによるJavaアプリケーション開発 ¥ 2,200
8: オープンソースがビジネスになる理由―勝ち組企業は何をしたか ¥ 2,400
9: 実践Eclipse Javaプログラミング入門 ¥ 2,280
非常に簡単な説明になってしまうと思いますが、Amazon APIsから戻るXMLをXSLTで構文解析させ、HTMLにする方法を書きたいと思う。
今回は、HTTPのGETでリクエストしてXMLのレスポンスをXSLTで構文解析してHTMLにする方法を説明する。
1.Interface [ HTTP GET ]
http://xml-jp.amznxslt.com/onca/xml3?
t=[associates tag]&
dev-t=[developer’s token goes here]&
type=[lite or heavy]&
mode=[product line goes here]&
page=[page # goes here]&
f=[ output format ]&
KeywordSearch=[subject keyword goes here]&
locale=[locale]
Explanation of Tag
t : アソシエイトタグID
アソシエイトプログラムへ登録した時のID(デフォルトは、webservices-20)
dev-t : デベロッパー・トークン
ここから登録して取得します。
type : [lite] or [heavy]を選択します。 XMLのレスポンス情報が違います。
mode : 製品カテゴリ。 本やDVDなどがあります。(下記 mode一覧参照)
page : XSLTで表示した製品数よりもXMLのレスポンス製品が多い時に有効。 ページ制御
f : [xml] or [xsltのURL] 出力フォーマットを指定する。
KeywordSearch : 検索キーワド。 この他にも ArtistSearch、AsinSearchなどがある。
locale : 日本なので jp 。(USは必要なし!、イギリスは uk、ドイツは de になる。
※ t と dev_t は、デタラメでも動作します???
アソシエイトタグはキャッシュバックがあるが、デベロッパー・トークンは何の意味があるのだろうか???
※日本で使用可能なmode一覧
books-jp
dvd-jp
vhs-jp
electronics-jp
software-jp
music-jp
classical-jp
2.使ってみる。
[ サンプル1 ]
Response XML
ここ をクリックすると、Java書籍の一覧が表示されます。
[ サンプル2 ]
Response XML
これはJava書籍のバナーです。
[↑この interface ]
http://xml-jp.amznxslt.com/onca/xml3?
t=[ アソシエイトタグID ]
&dev-t=[ デベロッパー・トークン ]
&KeywordSearch=java
&mode=books-jp
&type=lite
&page=1
&locale=jp
&f=http://www.blogkid.com/AmazonWebServices/XSLTSamples/webserv-example3c.xsl
Googleで続けてきた投稿ですが、ネタが減ってきたので以前から気になっていたAmazon APIなるモノを試してみた。 今回はAmazonDevKitにあるJavaのサンプルを動作させるまでの本当に簡単な手順を記述します。
1.ユーザ登録とDeveloper's Tokenの取得
下記のサイトより・・・
http://www.amazon.co.jp/webservices
下記の手順を完了する。
1. Download our free developer's kit
2. Apply for a free developer's token
2.WebServices - Axisをダウンロードして環境を作る。
↓ここからダウンロード(今回はV1.1)
http://ws.apache.org/axis/index.html
展開してAXISのlibにあるJarファイルをCLASSPATHへ通す。
3.Amazon WSDLドキュメントからの Java コードの生成
( 参照WSLDL : http://soap.amazon.com/schemas3/AmazonWebServices.wsdl )
下記のコマンドを実行する。
[ for none-proxy environment ]
% java org.apache.axis.wsdl.WSDL2Java -v -p com.amazon.soap.axis
http://soap.amazon.com/schemas3/AmazonWebServices.wsdl
[ for proxy environment ]
% java -Dhttp.proxyHost=[ProxyServer] -Dhttp.proxyPort=[ProxyPort]
org.apache.axis.wsdl.WSDL2Java -v -p com.amazon.soap.axis
http://soap.amazon.com/schemas3/AmazonWebServices.wsdl
--- こんな感じでJavaコードが生成される。
Parsing XML file: http://soap.amazon.com/schemas3/AmazonWebServices.wsdl
Generating com\amazon\soap\axis\PowerRequest.java
Generating com\amazon\soap\axis\ShortSummary.java
Generating com\amazon\soap\axis\ListingProductInfo.java
・・・
生成されたコードをコンパイルする。(今回はこんな感じで!)
% javac com\amazon\soap\axis\*.java
出来上がった com package をCLASSPATHへ通す。
4.Amazon Dev KitのJavaのサンプルコードをコンパイルする。
↓このフォルダーにJavaのサンプルコードがあるので作業ディレクトリを移動する。
[kit]\AmazonWebServices\JavaCodeSample
% javac *.java
コンパイルしてみる・・・っがエラーが沢山出る。
「補足」20031108にリリースされたバージョンは問題ない。
コンパイルエラーで出力されるサンプルコード内にあるメソッド [ setXXXXXX_Id ]のId を idへ全て変更して再コンパイルすれば上手くいくはず!
5.サンプルの起動
None Proxy環境であれば、
% java run
っで実行可能
Proxy環境の場合は AbstractXmlQuery.java の 100行近辺にある。
[ Original ]
socket = new Socket(hostPort[0], (hostPort.length > 1) ? Integer.parseInt(hostPort[1]) : 80);
[ Modify ]
socket = new Socket( [ ProxyServer] , [ProxyPort] );
簡単な修正ではあるが、これで動作するはず!!(認証が必要なProxyは解りません!)
6.アプリケーションを実行
※起動が成功すると、Javaのサンプルアプリケーションが表示される。
XMLタブとSOAPタブがあるが、XMLタブの[Keyword Search]を選択する。
殆どの箇所はデフォルトで入っているので、そこは修正せず下記のみ入力する。
Developer Token [ 1で取得したID ]
Keyword [ 検索したワード ]
Mode [ 商品のカテゴリ ]
私は、Keywordを [ google ]で、Modeを [ books-jp ]で試した。
成功するとアプリを起動したコンソールへレスポンスのXMLが表示され、サンプルアプリケーションのGUIへはTreeViewで結果が見れる。
○今回は、ここまで・・・Google APIsより機能が多いので色々と探ってみたい。
