PR

【開発者向け】PA-API v5からCreators APIへの書き換えコード例

Amazonアソシエイト
記事内に広告が含まれています。

開発者の方に向けて、従来の PA-API v5 から Creators API (v3.3) への移行に伴うコードレベルの変更点をまとめました。

最大の違いは、認証方式が AWS署名 (v4) から OAuth 2.0 (LwA) に変わったこと、そしてリクエストの パラメータ名が小文字開始 に統一されたことです。

スポンサーリンク

1. 主要な仕様変更の比較

項目PA-API v5 (旧)Creators API (新)
認証方式HMAC-SHA256
(AWS SigV4)
OAuth 2.0
(LwA)
エンドポイントwebservices.amazon.co.jpcreatorsapi.amazon.com
HTTPメソッドPOSTPOST
JSONキーアッパーキャメル
(Keywords)
ローワーキャメル
(keywords)
商品情報Offers.ListingsoffersV2.listings

2. 【重要】認証プロセスの変化

PA-API v5ではリクエストごとに署名を生成していましたが、Creators APIでは Access Token を事前に取得し、それを Authorization ヘッダーに乗せる方式になります。

Access Token 取得の cURL 例

curl -X POST https://api.amazon.co.jp/auth/o2/token \
  -H "Content-Type: x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_CREDENTIAL_ID" \
  -d "client_secret=YOUR_CREDENTIAL_SECRET" \
  -d "scope=amazon_creators_api"

注: 取得した access_token は通常1時間有効です。有効期限内は再利用し、期限が切れたら再取得する実装が必要です。

3. リクエストコードの書き換え例 (PHP)

SearchItems を例に、パラメータ構造の変化を確認してください。

旧:PA-API v5

// PA-API v5のリクエストボディ
$payload = json_encode([
    "Keywords" => "Harry Potter",
    "PartnerTag" => "your-tag-22",
    "PartnerType" => "Associates",
    "SearchIndex" => "All",
    "Resources" => ["ItemInfo.Title", "Offers.Listings.Price"]
]);

新:Creators API

// Creators APIのリクエストボディ(キーが小文字開始に変更)
$payload = json_encode([
    "keywords" => "Harry Potter",
    "partnerTag" => "your-tag-22",
    "searchIndex" => "All",
    "resources" => [
        "itemInfo.title", 
        "offersV2.listings.price" // リソース名も変更
    ],
    "marketplace" => "www.amazon.co.jp" // 必須項目
]);

// ヘッダーには取得済みのBearer Tokenをセット
$headers = [
    'Authorization: Bearer Atc|...',
    'Content-Type: application/json',
    'x-amz-creators-api-target: com.amazon.creators.v1.AmazonCreatorsApi.SearchItems'
];

4. レスポンス処理の変更点

レスポンスの構造も、キャメルケースからスモールキャメルケースへ変更されています。

  • 旧: $response['SearchResult']['Items'][0]['ASIN']
  • 新: $response['searchResult']['items'][0]['asin']

特に 価格情報 を取得していた場合、Offers.Listings ではなく offersV2.listings を指定し、その下の price.money.displayAmount などを参照する形になります。

5. 移行のためのチェックリスト

  1. SDKの導入: 署名処理を自作するより、公式の amazon-creators-api SDK(Node.js, PHP, Python対応)を利用することを強く推奨します。
  2. Marketplaceパラメータ: marketplace フィールド(例: www.amazon.co.jp)が必須となりました。
  3. 大文字・小文字の修正: 全てのJSONキーを小文字開始に置換してください。
  4. 48時間ルール: 新しい認証情報(Credential ID)を発行した後、実際にAPIが通るまで最大48時間のラグがあるため、テストは余裕を持って行いましょう。
Creators API Documentation
Documentation for Amazon Creators API

まとめ

Creators APIへの移行は、単なるエンドポイントの変更ではなく、認証フローの刷新を伴います。まずはOAuthによるトークン取得処理を共通関数化し、既存のPA-APIリクエスト部を「キーの小文字化」と「リソース名の微調整」でアップデートしていくのが最も効率的です。

コメント

タイトルとURLをコピーしました