JavaでProduct Advertising APIのリクエストを作る
では、Signed Requests Helperではなく、
JavaでProduct Advertising APIのリクエストを作っていきましょうね。
アマゾンの本のジャンルから、
箱根駅伝というキーワードで商品を検索するリクエストは
このようになります。
これはSigned Requests Helperを使うと構築できますね。
これを分解すると、
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 は↓↓も参考にしてください。