<前回の記事>
AmazonAPI活用の第2弾です。
前回の処理では、
- タイトル
- 著者
- 出版社
- 定価
という4つのデータをエクセル上に出力致しました。
今回はもっと他に・・・というより、まずどんなデータが取れるのかを全て確認してみたいと思います。
レスポンスグループを確認する
まずAmazonAPIを利用して商品データを取得する際、「○○の商品のデータ下さい」と言えば全てのデータがもらえる訳ではありません。
Amazonは日々膨大な量のリクエストを処理している訳ですから、一々全てのデータを渡していたら通信量がとんでも無いことになってしまい、とても処理仕切れなくなってしまいます。(正確に言えば処理は出来るのでしょうが、必要以上に稼働させないといけなくなる。)
その負担を少しでも軽減するために、データは幾つかのグループに小分けされており、データが欲しい場合はそのグループごとに指定する形になっています。
ですので、商品データを要求する場合は「○○の商品の○○グループのデータ下さい」という形でリクエストを送信する必要があります。
前回コピーしたコードにもその記述が存在しますので、確認してみましょう。
前回のコードが記述されたAPIのサンプルはこちらに用意しました。
「Module1」の「GetBookInfoFromAmazon」にある、
- AWSKeyId
- sKey(シークレットキー)
- AssociateID22
- AssociateID20
に、ご自身で取得された値を入力すればそのまま使用可能(のはず)です。
「GetBookInfoFromAmazon」内にある以下の記述に、リクエスト要求の内容が含まれています。
※見やすくするため改行を入れました。
rawText = "AWSAccessKeyId=" & AWSKeyId & "&AssociateTag=" & associateid & _ "&IdType=ISBN&ItemId=" & isbn & _ "&Operation=ItemLookup&ResponseGroup=Request%2CLarge&SearchIndex=Books&Service=AWSECommerceService&Timestamp=" & _ timestamp & "&Version=" & APIVersion
「ResponseGroup=Request%2CLarge」
この部分ですね。
この「ResponseGroup」に欲しいデータのグループを指定します。
ちなみに上のサンプルでは Request と Large というグループが選択されている状態ですね。
その間にある「%2C」というのは、「,(カンマ)」をURLエンコードした状態の値です。複数のレスポンスグループを指定する際はカンマ区切りで指定しますが、URLにカンマはそのまま使用できませんのでこの様に変換する必要があります。
例えばリクエスト情報(Request)、商品の詳細情報(ItemAttributes)、商品の画像(Images)の3つを指定する場合の記述は
ResponseGroup=Request%2CItemAttributes%2CImages
という風になります。
レスポンスグループごとに取得できる値
ところで、指定できるレスポンスグループには先程書いたもの以外にも多くの種類が存在します。
今回は主に商品検索で用いられる、以下3つのオペレーションで使用されるレスポンスグループを確認してみましょう。
- ItemLookup
- ItemSearch
- SimilarityLookup
※レスポンスグループ名をクリックで、そのグループの詳細説明ページへジャンプします。(随時作成)
レスポンスグループ | 概要 | 使用不可オペレーション |
---|---|---|
Accessories | 商品に関連付けられている最大5個のアクセサリのASINとタイトルを返す。 | - |
AlternateVersions | 本のタイトルで利用できる全てのメディアフォーマットを返す。(Paperback、Audio CD、Audio Cassette、Hardcover…等) | - |
BrowseNodes | 商品に関連付けられているブラウズノードの名前とIDを返す。 | - |
Collections | レスポンスで返される各商品に関連付けられている商品のASINとタイトルを返す。 | SimilarityLookup |
EditorialReview | 商品ごとに Amazon による商品のレビューを返す。 | - |
Images | 商品について利用できる全ての画像の URL を返す。 | - |
ItemAttributes | 商品を説明する多数の属性を返す。 例)Camera and Photo サーチインデックスの商品は、高さ、幅、重量などを返す。 | - |
ItemIds | レスポンスで返される全ての商品の ASIN を返す。 | - |
Large | 複数のレスポンスグループの結果を返す親レスポンスグループ。 | - |
Medium | 複数のレスポンスグループの結果を返す親レスポンスグループ。 | - |
OfferFull | Offers レスポンスグループの結果と、その他複数の情報を返す親レスポンスグループ。 | - |
OfferListings | - | |
Offers | OfferSummary レスポンスグループの内容に加え、デフォルトで出品者と出品商品情報を返す、親レスポンスグループ。 | - |
OfferSummary | レスポンスの各商品に対し、出品情報の数とコンディションタイプごとの最低価格を返す。 | - |
PromotionSummary | プロモーションに関する要約情報(プロモーションID、資格要件など)を返す。 | - |
RelatedItems | ItemLookup リクエストで指定した商品に関連する商品を返す。 ※関連商品として個別に販売されている TV シーズンの全ての Unbox エピソードや、MP3アルバムなど。 | SimilarityLookup |
Request | リクエストで送信された全てのパラメータとその値を返す。リクエストをデバッグ等に使用。 | - |
Reviews | カスタマーレビューを含むiFrameのURLを返す。 | - |
SalesRank | 各商品のランキングをレスポンスで返す。 | - |
Small | 複数のレスポンスグループの結果を返す親レスポンスグループ。 | - |
Variations | VariationSummary および VariationMinimum レスポンスグループの内容に加え、バリエーションごとの商品属性、出品情報など、その他のバリエーションの詳細をレスポンスで返す親レスポンスグループ。 | - |
VariationImages | 同じ商品のさまざまな画像のバリエーションを4サイズ(スウォッチ、小、中、大)表示する。 | ItemSearch、SimilarityLookup |
VariationMatrix | 指定した親 ASIN に対し、各子 ASIN のバリエーションディメンション名と値を返す。 | SimilarityLookup |
VariationOffers | 親 ASIN の子の出品情報を取得できる。 | SimilarityLookup |
VariationSummary | すべての子ASINの最低価格、最高価格、最低販売価格、最高販売価格をレスポンスで返す。 | - |
予想以上に多かったですね!
作業自体は何も進んでいませんが、レスポンスグループを調べ終わった所で一旦区切ります。
この一覧を元にして、次回は幾つかのレスポンステーブルから情報を取り出してみたいと思います。
あわせて、サンプルのマクロも結構修正が必要だという事が分かりましたのでその辺も触れていきます。
<次の記事>