チュートリアル:Java SDKを使用してSP-API呼び出しを自動化する

Amazonアカウントでログイン(LWA)トークンの交換と認証により、SP-API呼び出しを自動化します。

このチュートリアルでは、Login with Amazon (LWA) トークンの交換と認証を使用して Java SDK を生成し、アプリケーションをシームレスに構築する方法について説明します。Java SDK を構築するために必要な前提条件について学び、販売者向け販売パートナー API と Swagger コードジェネレーターの使用例も紹介します。

まず、承認プロセスの仕組みを見てみましょう。

チュートリアル

次のチュートリアルは、SP-API 呼び出しを自動化するための独自の Java SDK の設定に役立ちます。

前提条件

このチュートリアルを完了するには、次の前提条件が必要です。

  • ドラフトまたは公開状態のハイブリッドアプリまたはSP-APIアプリ
  • 統合開発環境 (IDE) ソフトウェア (このチュートリアルでは Windows OS 上の Eclipse IDE を使用します)

Before your application can connect to the Selling Partner API, you must register it, and it must be authorized by a selling partner. If you do not have a hybrid or SP-API app, follow the steps to register as a developer, register your application, and Authorizing Selling Partner API applications. Then, return to this tutorial.

次に、チュートリアル用のワークスペースを設定します。

ステップ1. ワークスペースをセットアップします。

まず、必要なソフトウェアパッケージをダウンロードし、Swagger Code Generator をダウンロードして、SP-API モデルリポジトリのクローンを作成する必要があります。

  1. ローカルドライブに、このプロジェクトのディレクトリを作成して名前を付けます SwaggerToCL

  2. 次のツールをダウンロードして、あなたのツールで利用できるようにしてください $PATH

  3. 次のコマンドを実行してSwagger Code Generatorをダウンロードします。

    wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.13/swagger-codegen-cli-2.4.13.jar -O swagger-codegen-cli.jar
  4. swagger-codegen-cli.jarをローカルディレクトリC:\\SwaggerToCLにコピーします。

  5. In GitHub, go to https://github.com/amzn/selling-partner-api-models/tree/main/models and use the following command to clone the selling-partner-api-models repository to your local directory C:\\SwaggerToCL.

    git clone https://github.com/amzn/selling-partner-api-models
  6. に移動します selling-partner-api-models\models リポジトリのローカルコピーにあるフォルダー、およびすべての JSON ファイルをモデルのサブフォルダーからにコピーします。 C:\\SwaggerToCL

    The selling-partner-api-models repository has two directories:

    • models directory - contains all the currently available Selling Partner API models.

    📘

    Developers use Swagger Codegen to generate client libraries from these models. Swagger CodeGen is an open source project which enables automatic generation of API client libraries (SDK generation), server stubs, and documentation from an OpenAPI specification. For more information, refer to Swagger Codegen.

Now that you have completed the required setup, the next step is to generate the Java SDK with the authentication and authorization classes provided in the sellingpartner-api-aa-java folder.

ステップ 2:SP API 用の Java SDK を生成する

このステップでは、フォルダー内のテンプレートに対して SDK を生成します。 selling-partner-api-models\clients\sellingpartner-api-aa-java リポジトリのローカルコピーにあります。このフォルダには、認証および認証ライブラリ、Swagger Code Generator 用のカスタマイズされたテンプレート、および正しいバージョンの SDK を生成するための設定ファイルが含まれています。

Java SDK を生成するには、ローカルディレクトリの各 JSON ファイルに対して次のコマンドを実行する必要があります。

java -jar C:\SwaggerToCL\swagger-codegen-cli.jar generate \ -i C:\SwaggerToCL\[name of model].json \ -l java -t [path to selling-partner-api-models\clients\sellingpartner-api-aa-java folder]\resources\swagger-codegen\templates\ \ -o C:\SwaggerToCL\[name of client library] \ -c [path to selling-partner-api-models\clients\sellingpartner-api-aa-java folder]\resources\java\config.json

たとえば、次のコマンドを実行して Java コードを生成します。 sellers.json

java -jar C:\SwaggerToCL\swagger-codegen-cli.jar generate \ -i C:\SwaggerToCL\Sellers.json \ -l java -t [path to selling-partner-api-models\clients\sellingpartner-api-aa-java folder]\resources\swagger-codegen\templates\ \ -o C:\SwaggerToCL\Sellers_JavaCL \ -c [path to selling-partner-api-models\clients\sellingpartner-api-aa-java folder]\resources\java\config.json

Repeat this step to generate SDKs for each of the SP-APIs available in the models directory.

生成された SDK には、LWA 認証情報を設定するためのクラスが含まれており、それらを使用して LWA トークンを交換します。

In the following steps, x.x refers to the latest version of the AA library. Refer to the readme to get the latest version.

ステップ 3:認証/承認ライブラリ (AA) ライブラリを構築します。

SDK を生成したら、AA ライブラリをビルドします。

  1. に移動します selling-partner-api-models\clients\sellingpartner-api-aa-java リポジトリのローカルコピーのフォルダを開いて実行 mvn package。これにより、という名前のフォルダーが生成されます。 target。このフォルダには JAR ファイル名 sellingpartnerapi-aa-java-x.x-jar-with-dependencies.jar (または似たような名前の) と必要なすべての依存関係。
  2. 次のコマンドを実行して、JARファイルをローカルの{{1}}リポジトリにインストールします。
mvn install:install-file -Dfile=[path to JAR file in "target" folder] -DgroupId=com.amazon.sellingpartnerapi -DartifactId=sellingpartnerapi-aa-java -Dversion=x.x -Dpackaging=jar

実際のものを見つけることができます groupIdartifactId、および version 上部付近の値 pom.xml 内のファイル selling-partner-api-models\clients\sellingpartner-api-aa-java フォルダー。

例:

mvn install:install-file -Dfile=C:\SwaggerToCL\sellingpartner-api-aa-java\target\sellingpartnerapi-aa-java-x.x.jar -DgroupId=com.amazon.sellingpartnerapi -DartifactId=sellingpartnerapi-aa-java -Dversion=x.x -Dpackaging=jar
mvn install:install-file -Dfile=C:\SwaggerToCL\sellingpartner-api-aa-java\target\sellingpartnerapi-aa-java-x.x-jar-with-dependencies.jar -DgroupId=com.amazon.sellingpartnerapi -DartifactId=sellingpartnerapi-aa-java -Dversion=x.x -Dpackaging=jar

ステップ 4:ライブラリを SDK の依存関係として追加します。

ライブラリを依存関係として追加するには、を編集する必要があります pom.xml ファイル。

  1. ローカルディレクトリで、 selling-partner-api-models/clients/sellingpartner-api-aa-java そして開いて pom.xml ファイル。

  2. 次のコードを依存関係としてファイルに追加します。

    <dependency> <groupId>com.amazon.sellingpartnerapi</groupId> <artifactId>sellingpartnerapi-aa-java</artifactId> <version>x.x</version> </dependency>
  3. ファイルを保存して閉じます。

次のステップは、実際のアプリケーションを作成し、生成された Java SDK を使用して SP-API に接続することです。

ステップ 5:生成された Java SDK を使用して販売パートナー API に接続します。

In this step, you connect to the Selling Partner API using your generated Java SDK. These steps use Eclipse IDE to import the generated SDK and connect to the Selling Partner API, but you can use your preferred IDE.

  1. {{0}}の「ファイル」メニューで「ファイルシステムからプロジェクトを開く」を選択し、生成されたJava SDKをインポートします。

  2. src/main/java を追加 class コードを書くために。

  3. 追加されたコードを入力してください class 次のインスタンスを設定するには:

    📘

    注:クラスパスがJAR内のクラスを認識しない場合は、{{2}}フォルダーで作成されたtargetファイルを追加する必要があります。このフォルダーは生成されたSDKフォルダーにあります。

  4. 生成された SDK API のインスタンスを作成し、オペレーションを呼び出します。例として、出品者向け販売パートナーAPIに接続するための以下のサンプルコードを参照してください (このAPI用のSDKを生成した場合)。

    import io.swagger.client.*; import io.swagger.client.auth.*; import io.swagger.client.model.*; import io.swagger.client.api.SellersApi; import java.io.File; import java.util.*; import com.amazon.SellingPartnerAPIAA.LWAAuthorizationCredentials; import com.amazon.SellingPartnerAPIAA.LWAException; import static com.amazon.SellingPartnerAPIAA.ScopeConstants.SCOPE_NOTIFICATIONS_API; // for grantless operations (Notifications API) import static com.amazon.SellingPartnerAPIAA.ScopeConstants.SCOPE_MIGRATION_API; // for grantless operations (Authorization API) public class SellersApiDemo { public static void main(String[] args) { //Configure your LWA credentials : LWAAuthorizationCredentials lwaAuthorizationCredentials = LWAAuthorizationCredentials.builder() .clientId("amzn1.application-*********************") .clientSecret("***********************************") .refreshToken("Atzr|******************************") .endpoint("https://api.amazon.com/auth/o2/token") .build(); //For Grantless operations (Authorization API and Notifications API), use following code : /* LWAAuthorizationCredentials lwaAuthorizationCredentials = LWAAuthorizationCredentials.builder() .clientId("amzn1.application-*********************") .clientSecret("***********************************") .withScopes(SCOPE_NOTIFICATIONS_API, SCOPE_MIGRATION_API) .endpoint("https://api.amazon.com/auth/o2/token") .build(); */ //Create an instance of the Sellers API and call an operation : SellersApi sellersApi = new SellersApi.Builder() .lwaAuthorizationCredentials(lwaAuthorizationCredentials) .endpoint("https://sellingpartnerapi-na.amazon.com") // use Sandbox URL here if you would like to test your applications without affecting production data. .build(); try { GetMarketplaceParticipationsResponse result = sellersApi.getMarketplaceParticipations(); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling SellersApi#getMarketplaceParticipations"); e.printStackTrace(); } catch (LWAException e) { System.err.println("LWA Exception when calling SellersApi#getMarketplaceParticipations"); System.err.println(e.getErrorCode()); System.err.println(e.getErrorMessage()); e.printStackTrace(); } } }

コードを実行したら、mainクラスを実行すると、承認された出品者が出品できるマーケットプレイスのリストが表示されます。

他の SP API でも同様の手順を実行できます。


このページは役に立ちましたか?