PA-API v5 への移行

no extension

先月の2019年9月に Amazon Product Advertising API v5 がリリースされた。

これによると 2019-11-30 までに v5 に移行する必要があるらしい。

v4 では GET リクエストで XML 形式のデータを返していたが, v5 では POST リスエストで JSON 形式のデータを返す。

たとえば ASIN コード B01IGW5IIW の商品の情報を取得する場合は, POST リクエストのペイロードに

{
 "ItemIds": [
  "B07YCM5K55"
 ],
 "Resources": [
  "Images.Primary.Medium",
  "ItemInfo.ByLineInfo",
  "ItemInfo.ContentInfo",
  "ItemInfo.Classifications",
  "ItemInfo.ExternalIds",
  "ItemInfo.ProductInfo",
  "ItemInfo.Title"
 ],
 "PartnerTag": "mytag-20",
 "PartnerType": "Associates",
 "Marketplace": "www.amazon.co.jp",
 "Operation": "GetItems"
}

とクエリをセットして送信すると

{
 "ItemsResult": {
  "Items": [
   {
    "ASIN": "B07YCM5K55",
    "DetailPageURL": "https://www.amazon.co.jp/dp/B07YCM5K55?tag=mytag-20&linkCode=ogi&th=1&psc=1",
    "Images": {
     "Primary": {
      "Medium": {
       "Height": 160,
       "URL": "https://m.media-amazon.com/images/I/51Ef9EF+HaL._SL160_.jpg",
       "Width": 113
      }
     }
    },
    "ItemInfo": {
     "ByLineInfo": {
      "Contributors": [
       {
        "Locale": "ja_JP",
        "Name": "宮成楽",
        "Role": "著"
       }
      ],
      "Manufacturer": {
       "DisplayValue": "竹書房",
       "Label": "Manufacturer",
       "Locale": "ja_JP"
      }
     },
     "Classifications": {
      "Binding": {
       "DisplayValue": "Kindle版",
       "Label": "Binding",
       "Locale": "ja_JP"
      },
      "ProductGroup": {
       "DisplayValue": "Digital Ebook Purchas",
       "Label": "ProductGroup",
       "Locale": "ja_JP"
      }
     },
     "ContentInfo": {
      "Languages": {
       "DisplayValues": [
        {
         "DisplayValue": "日本語",
         "Type": "発行済み"
        }
       ],
       "Label": "Language",
       "Locale": "ja_JP"
      },
      "PagesCount": {
       "DisplayValue": 116,
       "Label": "NumberOfPages",
       "Locale": "en_US"
      },
      "PublicationDate": {
       "DisplayValue": "2019-09-27T00:00:00.000Z",
       "Label": "PublicationDate",
       "Locale": "en_US"
      }
     },
     "ProductInfo": {
      "IsAdultProduct": {
       "DisplayValue": false,
       "Label": "IsAdultProduct",
       "Locale": "en_US"
      },
      "ReleaseDate": {
       "DisplayValue": "2019-09-27T00:00:00.000Z",
       "Label": "ReleaseDate",
       "Locale": "en_US"
      }
     },
     "Title": {
      "DisplayValue": "晴れのちシンデレラ (12) (バンブーコミックス MOMOセレクション)",
      "Label": "Title",
      "Locale": "ja_JP"
     }
    }
   }
  ]
 }
}

などとレスポンスが返る。 クエリ JSON の Resources フィールドで欲しい情報をかなり細かく指定できるのが特徴である。

Java と PHP については SDK が用意されている。 ぶっちゃけ何の参考にもならなかったが(笑)

PA-API v5 を試すのであれば Scratchpad が便利だ。 実際の動作を確認でき Java, PHP, curl のサンプルコードも見れるようになっている。 Java コードはブラックボックスだらけで全く参考にならなかったが PHP と curl のコードはかなり参考になる。

というわけで Go 言語用のパッケージを作ってみた。

自作の books-data 用に「とりあえず」で作ったので色々と不足しているのだが,基本機能は押さえてあるはず。

詳しくは以下を参照のこと。

なお, AWS 用のアクセスキーと秘密キーは PA-API v5 からは使えなくなるらしい。 使うためには PA-API 用にキーを取得する必要がある。 既に PA-API 用のキーを持っているならそのまま使えるようだ。

ブックマーク