Amazon Product Advertising API

アマゾンの商品検索WEBサービスである、「Amazon Associates Web Service (A2W)」が「Amazon Product Advertising API (APA?)」に名称が変更されました。
そして、名称が変わっただけではなく、その仕様も大きく変わることに…


これまで、AWSのアカウントを持っていれば、そのIDに加えて検索条件を設定し、リクエストをするだけで結果が帰ってきていたのですが、どうもそこにもうひと手間必要になったようです。


おおまかには、上記のリクエストに、

  1. 現在時刻のタイムスタンプを追加
  2. AWSアカウントの秘密鍵を追加
  3. [2]のリクエスト文字列で、署名認証(HMAC-SHA1)を生成
  4. 秘密鍵を含まない[1]のリクエスト + 署名認証でアマゾンへリクエス

という流れ。


既に公式のサンプルは出ていますし、フォーラムを覗いたらPHPでのサンプルもありました。
PHPのサンプルは結構わかりやすいので応用しやすいかと。

Amazon® AWS HMAC signed request using PHP


まっこと面倒な話ですが、8月16日を過ぎるとこれ以外のリクエストはエラーになってしまうようです。
ECS3 → 4 の時に比べるとかなり移行期間が性急なのが気になりますが、他に選択肢が無い以上早めに実装しておいた方がいいでしょう。
アマゾンに、日本語でのFAQもありました。

Product Advertising API サービス名称変更および署名認証の開始に関する、よくあるご質問


しかしなんでまた、こんなことにするのやら…
上のFAQでは、「認証されていない不正な API の利用を防ぐ」のが目的と書かれていますが、結果的にアマゾンへ人が流れていればさして問題にしなくてもいいはず。
ということは、APIへの負荷が人の流れに見合わないほど大きくなってきているのかな?
だとすると、2chのスレで書いていた人がいましたが、遠からずS3やEC2のような他のAPIのように課金を考えているのかもしれません。