AmazonのAPIを使用してKindle書籍情報をブログ上に出せないかと 思い、まずは商品を検索するスクリプトを書いてみた。
まだGroovyに慣れていないということもあり、結構苦戦したけど ひとまず商品情報を検索・取得して画面上に表示することはできた。
今回は、公式サイトの下記URLからダウンロードできるサンプルコードに 含まれているSignedRequestsHelperを使って接続している。 Product Advertising API Signed Requests Sample Code - Java REST/QUERY
なので接続処理自体では何も苦労しておらず、 取得したデータから必要な情報を取り出すという、 慣れた言語を使っていればすぐにできそうなところで苦労した。
今回作成したスクリプトは、 特定の検索キーワードでKindle版に限定して書籍を検索し、 その情報を画面上に表示する処理を行っている。
amazon_item_search.groovy
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7.1') import com.amazon.advertising.api.sample.SignedRequestsHelper import groovyx.net.http.HTTPBuilder def AWS_ACCESS_KEY_ID = '<アクセスキー>' def AWS_SECRET_KEY = '<シークレットキー>' def ENDPOINT = 'ecs.amazonaws.jp' def helper = SignedRequestsHelper.getInstance(ENDPOINT, AWS_ACCESS_KEY_ID, AWS_SECRET_KEY) def params = [ 'AssociateTag': '<アソシエイトタグ>', 'Service': 'AWSECommerceService', 'Version': '2009-03-31', 'Operation': 'ItemSearch', 'ResponseGroup': 'Large', 'SearchIndex': 'Books', 'Keywords': '<検索キーワード>', 'Power': 'binding:kindle' ] def requestUrl = helper.sign(params) def resp = new URL(requestUrl).text def result = new XmlSlurper().parseText(resp) def items = result.Items.Item println 'item counts: ${items.size()}' println '' items.each { item -> println 'ASIN: ${item.ASIN.text()}' println 'ItemAttributes: ' item.ItemAttributes.children().each { println '${it.name()}: ${it.text()}' } println 'OfferSummary: ' item.OfferSummary.children().each { println '${it.name()}: ${it.text()}' } println 'BrowseNodes: ' item.BrowseNodes.children().each { println '${it.name()}: ${it.text()}' } println '' }
渡すべきパラメータや取得できる情報については下記公式ドキュメントを参照した。 Product Advertising API
- 作者: 関谷和愛,上原潤二,須江信洋,中野靖治
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/06
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 392回
- この商品を含むブログ (155件) を見る