自動査定でAMAZON SP-API、始めました。


ずっと前からAMAZONから通告されていていて、まだまだ~と引っ張っておりましたSP-API。ようやく対応完了しました。詳しくない方に簡単に説明すると当店ではAMAZON API見積にAMAZON MWSというAPIを使用してAMAZONの各種データ(書籍名、中古価格、その他)のデータ利用しています。APIはセキュリティ更新や最新技術の導入、負荷分散その他の理由のため定期的に更新が行われ、今回もその流れです。従来のMWSは廃止となりSP-APIというシステムに変わります。ということは・・・はい、利用者側でAPIにアクセスするプログラムを書き換えないといけないというわけですね。MWSの一部サービスは既にアクセス制限がかかっており、2023年12月31日には完全廃止となる予定です。ということで、いよいよ重い腰を上げて対応した次第です。

つまづきその1:Phpはもはやメインストリームではないかも説

MWSではPhpでAMAZONが用意したサンプルソースが豊富にあったので、商品情報(カタログ情報)や、中古価格の取得などであれば比較的簡単に自身で関連ツールを作成することが出来ました。今回もそのノリでまずはネットにあるサンプルを拝見しようとPhpのソースを探すも探すも…公式ページでは見つからず、何かがおかしいぞと思いながら、苦労した同志たちの悲鳴すら聞こえそうなページを発見。やはり公式にあるのはPythonとのボヤキ。ウーム。これは・・これは・・。いくつかあるPhpの作例を見させて頂きながら、世の中の厳しさを痛感していると、GitHUBにPhpで作られた最高のものを見つけました。

jlevers /selling-partner-api
A PHP library for connecting to Amazon’s Selling Partner API.

ありがとうjlevers Jesse Evers!今のところ日本語の説明は見つけられなかったけど、最新更新は2週間前だし(この記事を書いている2023年6月20日現在)、頻繁に協力者によるバグ修正版もリリースされているもよう。すばらしい!!今回はこれを活用させて頂きます!

ちなみにMWSではAPIのレスポンスはXML形式でしたが、SP-APIからJSON形式になってます。これも時代ですかね。福書房の場合は自身で作成したアプリ間では元々JSONでやりとりしていたので、その点は便利になりました。

つまづきその2:自作アプリ利用のためのアカウント作成と認証がが複雑なので、心が折れそう説

SP-APIのリリース当初は日本語資料がなく、かなり苦労した方も多かったとか。これ1度しかやらない手続きなのにかなり複雑です。

  1. AWSアカウントの作成(無料BASICアカウント、氏名住所必要、クレジットカード登録必要)
  2. IAMユーザーの登録(AWSrootユーザーでアクセス、Access Key・Secret Keyを取得)
  3. SP-APIにアクセスするためのアプリクライアントを登録(ClientId・ClientSecretを取得)
  4. アプリクライアントからTokenを生成(AccessToken・RefreshToken)

一度に言われても頭に入ってこない。。
ある意味、スクリプト書くよりも大変かもです。手続きでこれだけ手順があると、しんどいですなー。

つまづきその3:Composerがあると先人たちの知恵が使えるが、レンタルサーバーによってはインストールできない。

PHP LibraryはComposerで使うのが便利なわけですが、レンタルサーバーによっては導入に一工夫必要です。福書房で使用しているサーバーでも一工夫が必要となりましたが、なんとかインストール完了!よしよし、とComposer経由でjlevers /selling-partner-apiをインストールしました。あ、1つ注意点を。私の使用しているサーバーではコマンドライン(ssh)でのPhpとapacheで使用するPhpのバージョンが異なってましたので、設定で一致させました。web利用の場合にバージョンエラーが出てcomposerが使用できない場合、導入・試験で使うシェル・コマンドラインバージョンと一致してないかもなのでチェック要です!

早速本日よりPA-APIバージョンで稼働開始です。

ただし内部仕様が変わっただけなので、お客様からの使用感はこれまでと一緒なのです。少しレスポンスが良くなったような気がします。気のせいかもですが(((´∀`))

自動査定はこちらから:自動査定

SP-APIを利用するまでの話をざっくりと記しました。時間のあるときに、もう少し詳細な手順を書いていきたいと思います。。あまりにもニッチな話なので、ごくごく一部の方しか興味ないと思いますが、自分用の記録も兼ねて。