技術的な話
ポイントがわかってしまえば対応は難しくなく、コードの改修自体は1時間もあれば終わったと思うんですけど、謎にはまってしまったポイントがいくつかあって時間が掛かってしまいました。のべ5時間ぐらい?はまりポイント
- APIの認証キーの再発行はメインユーザーで行うこと
- Laravelの.envファイルを変更した場合は、キャッシュを一通り更新すること
更新にあたってのポイント
Amazon Product Advertising API (PA-API)をLaravelで扱うためのライブラリ自体は互換性が維持されていて、プログラムの改修なしでAPIからデータを取得出来ましたが、APIが返すデータが大幅に変わっていたのでその対応が必要でした。v4 → v5の対応表
商品情報の変更点
評価(☆)を削除しました。
以前のAPIでは24時間有効なレビューページのURLが取得出来たので、そのページをスクレイピング → ☆を取得ということをしていたのですがそれが出来なくなった上に、評価情報を取得することも出来ない(Reviews自体がNot Supportedに)ようなので評価の表示を止めました。中古商品の価格を取得するのを止めました。
Amazonの商品は出品状態によっていろんな価格データを持ちます。以前は「新品の出品がない場合には最安の中古価格を表示する」というようなことをしていたのですが、正直あんまり意味がなさそうなので、販売価格と定価の2つを取得するだけにしました。技術的には今でも、「全出品商品の中から中古商品の最高値と最安値を取得する」みたいなことも出来ます。