チュートリアル:Node.js用のJavaScript SDKを使用してSP-API 呼び出しを自動化する
Amazonアカウントでログイン(LWA)トークンの交換と認証により、SP-API呼び出しを自動化します。
このチュートリアルでは、Amazonアカウントでログイン(LWA)トークンの交換と認証を使用してJavaScript SDK for Node.jsを生成し、アプリケーションをシームレスに構築するために必要なすべての詳細について説明します。JavaScript SDK for Node.jsの構築に必要な前提条件について学び、出品者向けSelling Partner APIとSwagger Code Generatorの使用例もご覧ください。
SP-API JavaScript SDK for Node.jsは、AmazonのSelling Partner APIとサーバー側で統合するように設計されています。このチュートリアルでは、実用的なアプリケーションに焦点を当ててSP-API呼び出しの統合と実行について説明するため、API呼び出しを実行してAmazonのマーケットプレイス機能をサーバー側のプロセスに直接統合できるようになります。
チュートリアル
次のチュートリアルは、SP-API呼び出しを自動化するための独自のJavaScript SDK for Node.jsをセットアップする際に役立ちます。
前提条件
このチュートリアルを完了するには、次の前提条件が必要です。
- ドラフトまたは公開状態のハイブリッドアプリまたはSP-APIアプリ
- 統合開発環境(IDE)ソフトウェア
- Javaバージョン7以降
swagger-codegen-cli-2.4.29
- Node.js v18以降
警告
swagger-codegen-cli-2.4.29
を必ず使用してください。2.4.29以外のswagger-codegen-cli
バージョンを使用する場合、SDKの生成は失敗します。間違ったバージョンを使用すると、統合プロセスで問題が拡大する可能性があります。
アプリケーションをSelling Partner APIに接続する前に、アプリケーションを登録し、出品パートナーの承認を受ける必要があります。ハイブリッドアプリやSP-APIアプリをお持ちでない場合は、開発者として登録、アプリケーションの登録、Selling Partner APIアプリケーションの承認の手順に従ってください。その後、このチュートリアルに戻ってください。
次に、チュートリアル用のワークスペースを設定します。
ステップ1. ワークスペースをセットアップします。
-
ローカルドライブに、このプロジェクト用のディレクトリを作成し、SPAPI_JavaScript_SDKという名前を付けて新しいディレクトリに移動します。
mkdir SPAPI_JavaScript_SDK cd SPAPI_JavaScript_SDK -
以下のツールをダウンロードしてください。
- IDEソフトウェア(このウォークスルーではWindows OSのVisual Studio IDEを使用)
- GNU Wget
- Javaバージョン7以降
-
次のコマンドを実行してSwagger Code Generatorをダウンロードします。
wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.29/swagger-codegen-cli-2.4.29.jar -
次のコマンドを使用してファイルを取得し、権限を変更して実行可能にします。
chmod 744 swagger-codegen-cli-2.4.29.jar -
swagger-codegen-cli.jar
をローカルディレクトリC:\\SPAPI_JavaScript_SDK
にコピーします。 -
GitHubで
https://github.com/amzn/selling-partner-api-models/tree/main/models
にアクセスし、次のコマンドを使用してselling-partner-api-models
リポジトリのクローンをローカルディレクトリC:\\SPAPI_JavaScript_SDK
に作成します。git clone https://github.com/amzn/selling-partner-api-models必要な設定が完了したため、次のステップでは、
sellingpartner-api-javascript
フォルダーに用意されている認証と承認クラスを使用してJavaScript SDK for Node.jsを生成します。
ステップ2. LWAトークンの交換と認証を備えたJavaScript SDK for Node.jsを生成します。
SellingPartnerAPISdkJavaScriptNode/src
ディレクトリに移動します。src
ディレクトリでgenerate-js-sdk.sh shell
スクリプトファイルを検索します。コマンドラインで次のスクリプトを実行します。
cd SellingPartnerAPISdkJavaScriptNode/src
./generate-js-sdk.sh -j ../../swagger-codegen-cli-2.4.29.jar
models
とsdk
ディレクトリを表示できるようになりました。パッケージルートにあるAPIモデルとJavaScript SDKがそれぞれ含まれます。
このフォルダーには、Amazon Selling Partner APIのアクセストークンを生成するためのヘルパークラスが用意されています。RestSharpライブラリを使用してSwagger Codegenによって生成されたSelling Partner APIクライアントライブラリと併用することを目的としています。カスタムプロジェクトに統合することもできます。
ステップ3. ローカルnpmパッケージを作成します。
SDKをパブリックnpmレジストリに公開しなくても、SDKをパッケージ化して複数のローカルプロジェクトで使用できます。
-
package.json
ファイルを開いて以下を追加し、package.json
が必要なディレクトリを含むように正しく設定されていることを確認します。"files": [ "src/helper/", "sdk/" ]このステップでは、指定したディレクトリとその内容(たとえば、
src/helper/
とsdk/
)がパッケージに含まれていることを確認します。それ以外は無視されます。 -
ターミナルまたはコマンドプロンプトで
SellingPartnerAPISdkJavaScriptNode
ディレクトリに移動します。 -
次のコマンドを実行してパッケージを作成します。
npm packこのコマンドでは、プロジェクトディレクトリにtarball(TGZファイル)が作成され、パッケージの名前とバージョンに基づいて
amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz
のような名前が付きます。プロジェクトに必要なファイルがすべて含まれているため、公開されているnpmパッケージと同じようにインストールできるローカルパッケージが効果的に作成されます。
ステップ4. ローカルnpmパッケージを使用して新しいプロジェクトを作成します。
ローカルnpmパッケージを使用する新しいプロジェクトを作成できるようになりました。この方法では、エンドデベロッパーが遭遇するのと同じような環境でSDKをテストできます。
-
次のコマンドを入力して、新しいプロジェクトの新しいディレクトリを作成します。この例では、現在のディレクトリが
SellingPartnerAPISdkJavaScriptNode/src
であることを前提としています。cd ../../ mkdir MyNewSPAPIProject cd MyNewSPAPIProject -
新しいNode.jsプロジェクトをセットアップして、クリーンな環境を確保してください。
npm init -y -
プロンプトに従って新しいプロジェクトを初期化します。デフォルトのオプションが環境に合う場合は、それをそのまま使用してください。
-
ステップ3. ローカルnpmパッケージの作成で作成したローカルnpmパッケージをこの新しいプロジェクトにインストールします。次のコマンドでは、プレースホルダー
../SellingPartnerAPISdkJavaScriptNode/amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz
をTGZファイルの実際のパスに置き換えます。このステップは、他の開発者が自分のSDKをプロジェクトにどのように統合するかをシミュレートするので非常に重要です。npm install ../SellingPartnerAPISdkJavaScriptNode/amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz注
.tgz
ファイルのパスは、現在の作業ディレクトリに基づいて、絶対パスか相対パスにすることができます。たとえば、.tgz
ファイルがSellingPartnerAPISdkJavaScriptNode
ディレクトリにある場合、コマンドはnpm install ../SellingPartnerAPISdkJavaScriptNode/amzn-testsellingpartnerjavascriptapilwalib-1.0.0.tgz
になります。これらの手順を完了すると、パッケージは新しいプロジェクトの
package.json
に依存関係として一覧表示され、通常どおりに機能をインポートできるようになります。
ステップ5. 生成されたJavaScript SDK for Node.jsを使用してSelling Partner APIに接続します。
認証を設定すると、SP-APIエンドポイントを操作する準備が整います。
-
LWA認証情報をプロジェクトルートの
app.config.mjs
ファイルに保管してください。touch app.config.mjs -
次のように、
app.config.mjs
内で認証情報を定義してください。export const AppConfig = { lwaClientId: "< LWA client ID >", lwaClientSecret: "< LWA client secret >", lwaRefreshToken: "< LWA refresh token >", }注意
このファイルには機密情報が含まれているため、絶対にバージョン管理システムにコミットしないでください。これらのLWA認証情報は、暗号化形式で安全に保管してください。
-
index.js
という名前の新しいファイルをプロジェクトのルートディレクトリに作成し、次のスクリプトを挿入します。特定のSP-APIエンドポイントの呼び出しが開始され、そのレスポンスがコンソールに記録されます。touch index.js -
以下をコピーして
index.js
に貼り付けます。import { AppConfig } from './app.config.mjs'; import { LwaAuthClient } from '@amzn/testsellingpartnerjavascriptapilwalib/src/helper/LwaAuthClient.mjs'; import { SellersApi, ApiClient as SellersApiClient, } from '@amzn/testsellingpartnerjavascriptapilwalib/sdk/src/sellers/index.js'; (async () => { const lwaClient = new LwaAuthClient( AppConfig.lwaClientId, AppConfig.lwaClientSecret, AppConfig.lwaRefreshToken ); const sellerApiClient = new SellersApiClient( 'https://sellingpartnerapi-fe.amazon.com' ); const sellerApi = new SellersApi(sellerApiClient); sellerApiClient.applyXAmzAccessTokenToRequest( await lwaClient.getAccessToken() ); const participations = await sellerApi.getMarketplaceParticipations(); console.log( JSON.stringify(participations, null, ' ') + '\n**********************************' ); })(); -
スクリプトを実行します。ターミナルまたはコマンドプロンプトで次のコマンドを実行して、出品者APIエンドポイントへのGETリクエストを開始します。
node index.jsこのコマンドはスクリプトを実行し、API呼び出しを開始し、結果をコンソールに表示します。
期待される出力:
{ "payload": [ { "marketplace": { "id": "xxxxx", "countryCode": "JP", "name": "Amazon.co.jp", "defaultCurrencyCode": "JPY", "defaultLanguageCode": "ja_JP", "domainName": "www.amazon.jp“ }, "participation": { "isParticipating": true, "hasSuspendedListings": false } } ] }
Updated 23 days ago