Amazon SP-API認証で詰まる「Refresh Token」問題と解決法

記事
IT・テクノロジー
Amazon SP-API(Selling Partner API)はEC事業者の自動化に欠かせないAPI。だが、認証周り、特にRefresh Tokenの扱いで躔る人が後を絶たない。

弊社でも自社受注管理システム「VOMS」のSP-API連携を組む過程で、Refresh Token周りで延゙20時間以上溶かした。今回は、その経験から詰まりやすい3つのパターンと解決策をまとめる。

【そもそもSP-API認証フローのおさらい】

SP-APIにアクセスするには、3つの認証情報が必要。

∶1. LWA(Login with Amazon)の Refresh Token:これが最重要
∶2. AWS IAM の Access Key / Secret
∶3. Application ID(Client ID / Client Secret)

このうち、Refresh Tokenがいちばん厲介。一度こけると最初からやり直しになるケースが多い。

【詰まりパターン①】Refresh Tokenの取得URLを間違える

これは初見で全員が踏むトラップ。マーケットプレイスを跨いだ時のURLが違う。

・日本マーケットプレイス:sellercentral.amazon.co.jp
・米国マーケットプレイス:sellercentral.amazon.com

弊社は最初に米国でRefresh Tokenを発行してしまい、日本セラーへのAPI呼び出しが全て401エラーになった。認可フローをやり直した。

必ず「co.jp」のURLから認可フロー開始。

【詰まりパターン②】Self-authorizationとWorkflow authorizationを混同

SP-APIの認証フローは2種類ある。

・Self-authorization:自分のセラーアカウントだけに使う場合
・Workflow authorization:他のセラーに自分のアプリを使ってもらう場合(公開アプリ)

弊社のような自社運用が目的なSelf-authorizationで十分だが、Selling Partner Appsの管理画面はデフォルトでWorkflow用フローになっている。

Self-authorizationは「アプリ詳細 → 認可」ボタンを別途押す必要がある。これに気付かずWorkflow URLから認可してしまうと、unauthorized_clientエラーが返ってくる。

【詰まりパターン③】Refresh Tokenが「サイレントに失効」する

ここが本記事最大のトラップ。Refresh Tokenは原則「無期限」と公式ドキュメントに書いてある。だが、実際には失効する条件がいくつかある。

弊社で踏んだ失効パターン:

1. セラーアカウントのパスワードを変更した → 全Refresh Tokenが即時失効
2. アプリの権限スコープを変更した → 旧Refresh Tokenは静かに無効化
3. 180日以上 SP-API を呼び出していない → 自動失効

特に3番目は気付きにくい。普段使うAPIだけ動いていて、たまにしか使わないAPIで突然 invalid_grant エラーが出る。

【解決策:月次ヘルスチェック】

・Refresh Tokenを安全に保管しつつ、月回のヘルスチェックスクリプトを組む
・Sandboxモードで全エンドポイントを軽く叩くだけでOK
・失効を検知したら Chatwork や Slack で通知

弊社のヘルスチェックは GitHub Actions で月回自動実行している。

【PHPで実装する場合の注意点】

弊社は秘書AI「vj-secretary」をPHP(Xサーバー)で実装中で、PHP公式SDKがないSP-APIの実装で苦戦している。

Access Tokenは1時間で切れるので、毎回 LWA Token を確認する必要がある。キャッシュ層(Redisやファイルキャッシュ)を立てて、Access Tokenを55分間キャッシュする実装にした。

【まとめ:SP-API認証チェックリスト】

☐ マーケットプレイスURL(.com or .co.jp)を確認した
☐ Self-authorizationフローを使った
☐ Refresh Tokenを安全な場所に保管した
☐ 月回のヘルスチェック自動化を仕込んだ
☐ PHP/Pythonいずれの場合も、Access Tokenキャッシュ層を持っている

弊社ではSP-API、Yahoo!ショッピングAPI、Qoo10 APIなどマルチモールEC運営の自動化を実装代行しています。ココナラのDMからお気軽にご相談ください。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら