2019/12/01

Amazon Product Advertising API(PA-API) 5.0 in Perl

師走ですね。Palo Alto もめっきり寒いです。サンクスギビングは雨ばかりでした。青空が恋しいです。

さて、このブログではひそかに Amazon のあさましいリンクの生成に商品情報APIを利用しているのですが、なんだかAmazonアカウントの多重登録を解決したあたりからその辺の機能が動かなくなっていて、まあでもいっかーと思ってかれこれ半年以上放置していたのですが、どうやら以下の変更の影響をもろにうけているようでした。

2019年01月23日以降、過去30日以内のPA-API経由の売上実績(発送済み商品売上)がない場合、PA-APIへのアクセスができなくなる可能性がございます。

2019/01/23 - Product Advertising API 利用ポリシーの変更について

まじかよ。

つまりこういうことです。
Amazonアカウントが多重に登録されていたので(詳細は割愛)、ひとつのアカウントに統合してもらったのですが、廃止した方のアカウントにアソシエイトアカウントがひもづいていて、もちろんそのアソシエイトアカウントは無効になったので(ここは事前に説明を受けていたので問題なし)、新しくアカウントを作り直したら、売り上げ実績がないからAPIが叩けない、という事態に。

売り上げを上げるためのAPIを叩くために売り上げが必要

えええええ

まあそんなわけで、とりいそぎアソシエイトの売り上げがあれば API 経由かどうかは問われないらしいのでサイト内の広告枠を全てAmazonバナーに貼りかえて苦節2ヶ月、無事売り上げがあがってAPIが叩けるようになりました。よっしゃ、いろいろ動いたぞーっと思っていたのもつかの間、今度は Amazon の API自体がなにやら移行するらしいのです。

PA-API v5への移行を2020年02月11日までに実施しなかった場合、現在のPA-APIはご利用をいただけなくなります。

PA-API v5移行のご案内

古いAPIはぶった切りで使えなくなるらしいので移行するしかありません。期限は 2020年02月11日までらしいです。ふむなるほど、まだ余裕あるな。と思って 変更内容 を見てみたけど、これがなかなか署名からレスポンスに至るまでがっつり変更されていてちょっと面倒くさいっぽい。各種言語 SDK が用意されているけど、いまどき Perl のは用意されてない。

まあそういうわけで、一番面倒くさそうな署名するとこの Perl モジュール書きました。

Amazon::PAApi5::Signature

日本の Amazon で商品検索するサンプルはここにあります。 https://github.com/bayashi/Amazon-PAApi5-Signature/blob/master/example/jp.pl

まだ署名以外ちょっとがっつり使い込んでないのでバギーかもしれないけど、これでオペレーションを試す下地はできました。

新しいバージョンは、レスポンスが XML から JSON になって、そこはとっても快適です。

サイト内検索