Webエンジニアの開発記

Webエンジニアの開発記録です。Java,SAStruts,jQuery,AmazonWebService,マッシュアップ。

JavaでProduct Advertising APIのリクエストを作る

では、

JavaProduct Advertising APIのリクエストを作っていきましょうね。

 

アマゾンの本のジャンルから、

箱根駅伝というキーワードで商品を検索するリクエストは

http://ecs.amazonaws.jp/onca/xml?AWSAccessKeyId=AKIAJXXXXXXXXKXAJJKA&AssociateTag=XXXXXX-22&Keywords=%E7%AE%B1%E6%A0%B9%E9%A7%85%E4%BC%9D&Operation=ItemSearch&SearchIndex=Books&Service=AWSECommerceService&Timestamp=2013-12-20T16%3A16%3A30.000Z&Version=2011-08-01&Signature=u5XcWqeA4Jd2M%2BxgRq0DbWDVCv%2FElzhBs0Ftij%2FbAdo%3D

このようになります。

これは

 

これを分解すると、

http://ecs.amazonaws.jp/onca/xml?

AWSAccessKeyId=AKIAJXXXXXXXXKXAJJKA

&Service=AWSECommerceService

&AssociateTag=XXXXXX-22

&Operation=ItemSearch

&SearchIndex=Books

&Keywords=%E7%AE%B1%E6%A0%B9%E9%A7%85%E4%BC%9D

&Timestamp=2013-12-20T16%3A16%3A30.000Z

&Version=2011-08-01

&Signature=u5XcWqeA4Jd2M%2BxgRq0DbWDVCv%2FElzhBs0Ftij%2FbAdo%3D

赤字の9つのパラメータに分かれています。

 

上から順に見ていきます。

AWSAccessKeyId は、AWSのアカウントを作成して、

Management Consoleにログインし、セキュリティ認証のページに載っています。

 

Service は、お決まりです。常にAWSECommerceServiceでOKです。

 

AssociateTag は、Amazon アソシエイトにログインした画面の、

左上に出ています。アフィリエイターIDみたいなもんですね。

 

Operation は、商品検索の場合は ItemSearch ですね。

 

SearchIndex は、商品ジャンルです。こちらを参照してください。

 

Keywords は、検索キーワードです。

たとえばウェブスクレイピングで抽出したキーワードですね。

数字は半角英字のみの場合はそのままでOKです。

しかし、日本語文字を検索キーワードに含める場合、

日本語文字の部分のみエンコードが必要です。

 

↓このようにします。

String エンコード語の文字 = URLEncoder.encode("対象文字列", "utf-8").replace("+", "%20").replace("*", "%2A").replace("%7E", "~");

これは、開発者ガイドの「ようこそ » プログラミングガイド » リクエスト » リクエストの署名認証について » RESTリクエストの認証方法」に記載されていました。

 

Version は、Product Advertising API のバージョンです。2011-08-01固定でOKです。

Timestamp は、・・・ 次の記事へ

Signature は、・・・ 次の記事へ

 

Timestamp および Signature は↓↓も参考にしてください。

認証(Timestamp及びSignature) - 共通パラメータ - Amazon Web サービス