Amazon APIs: 2003年10月アーカイブ
もの凄く簡単なコードですが、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より機能が多いので色々と探ってみたい。

