使用生成的Java SDK连接到销售伙伴API

亚马逊SPAPI

在您的应用程序可以连接到销售伙伴API之前,您必须注册它,并且它必须得到销售伙伴的授权.参见注册您的应用程序授权销售伙伴API应用程序.

这些说明告诉你如何使用生成的Java SDK进行调用.SDK暴露了用于配置你的LWA和AWS凭证的类,并使用这些类来交换LWA令牌并为你签署请求.更多信息,请参阅[生成带有LWA令牌交换和认证的Java SDK](doc generating-a-java-sdk-with-lwa-token-exchange-and-authentication).

# 步骤1.配置你的AWS凭证

创建一个AWSAuthenticationCredentials的实例,使用以下参数

Name 描述 要求描述
accessKeyId[/strong 您的AWS访问密钥Id,来自步骤2.创建一个IAM用户. 是的
secretKey[/strong 你的AWS秘密访问密钥,来自第2步.创建IAM用户. 是的
region 您将呼叫指向的AWS区域.更多信息,请参阅销售合作伙伴API端点. 是的

例子

import com.amazon.SellingPartnerAPIAA.AWSAuthenticationCredentials;

AWSAuthenticationCredentials awsAuthenticationCredentials=AWSAuthenticationCredentials.builder()
  .accessKeyId("myAccessKeyId")
  .secretKey("mySecretId")
  .region("us-east-1")
  .build();
1
2
3
4
5
6
7

# 步骤2.配置你的AWS凭证提供者

创建一个AWSAuthenticationCredentialsProvider的实例,使用以下参数

中创建的IAM角色的ARN
名称描述 要求描述
roleArn 您在步骤4.创建一个IAM角色.是的
roleSessionName 您定义的会话的标识符.我们建议使用通用唯一标识符 (UUID). 是的

例子

import com.amazon.SellingPartnerAPIAA.AWSAuthenticationCredentialsProvider;

AWSAuthenticationCredentialsProvider awsAuthenticationCredentialsProvider=AWSAuthenticationCredentialsProvider.builder()
  .roleArn("myroleARN")
  .roleSessionName("myrolesessioname")
  .build();
1
2
3
4
5
6

# 第3步.配置你的LWA凭证

创建一个LWAAuthorizationCredentials的实例,使用以下参数

Name Description Required
clientId Your LWA client identifier. For more information, see Viewing your developer information. 是的
clientSecret Your LWA client secret. For more information, see Viewing your developer information. 是的
refreshToken LWA刷新令牌.当销售伙伴授权你的应用程序时获得此值.更多信息,请参见授权销售合作伙伴API应用程序.

No.如果你在下面的步骤中调用的操作需要销售伙伴授权,请包括refreshToken.所有不是无授权操作的操作都需要销售伙伴授权.如果你包括refreshToken,请不要包括withScopes.

withScopes

LWA授权的范围.你可以指定一个或多个withScopes值.

Values:

  • SCOPE_NOTIFICATIONS_API.用于通知API.
  • SCOPE_MIGRATION_API.用于授权API.
No. 如果你在下面的步骤中调用的操作是一个grantlessoperation. 如果你包括withScopes,不要包括refreshToken.
endpoint LWA认证服务器URI. 是的

调用需要销售伙伴授权的操作的例子

import com.amazon.SellingPartnerAPIAA.LWAAuthorizationCredentials;

LWAAuthorizationCredentials lwaAuthorizationCredentials = LWAAuthorizationCredentials.builder()
  .clientId("myClientId")
  .clientSecret("myClientSecret")
  .refreshToken("Aztr|...")
  .endpoint("https://api.amazon.com/auth/o2/token")
  .build();
1
2
3
4
5
6
7
8

调用无授权操作的例子

import com.amazon.SellingPartnerAPIAA.LWAAuthorizationCredentials;
import static com.amazon.SellingPartnerAPIAA.ScopeConstants.SCOPE_NOTIFICATIONS_API;
输入静态的 com.amazon.SellingPartnerAPIAA.ScopeConstants.SCOPE_MIGRATION_API;

LWAAuthorizationCredentials lwaAuthorizationCredentials =
  LWAAuthorizationCredentials.builder()
  .clientId("myClientId")
  .clientSecret("myClientSecret")
  .withScopes(SCOPE_NOTIFICATIONS_API, SCOPE_MIGRATION_API)
  .endpoint("https://api.amazon.com/auth/o2/token")
  .build();
1
2
3
4
5
6
7
8
9
10
11

# 步骤4.创建一个Sellers API的实例并调用一个操作

配置好AWSAuthenticationCredentialsAWSAuthenticationCredentialsProviderLWAAuthorizationCredentials实例后,你可以创建一个SellersApi的实例并调用一个操作.

例子

SellersApi sellersApi = new SellersApi.Builder()
  .awsAuthenticationCredentials(awsAuthenticationCredentials)
  .lwaAuthorizationCredentials(lwaAuthorizationCredentials)
  .awsAuthenticationCredentialsProvider(awsAuthenticationCredentialsProvider)
  .endpoint("https://sellingpartnerapi-na.amazon.com")
  .build();
1
2
3
4
5
6