sp-api对接过程详解

本文详细介绍了如何对接Amazon Selling Partner API(SP-API),包括创建开发者账号、AWS账户、IAM用户和角色、策略,以及注册应用程序并授权的过程。重点强调了在创建IAM权限时区分用户和角色的重要性,以及在授权过程中正确使用RoleArn和refreshToken。

根据amazon官方给的开发者文档,再结合自己在从0到最后抓单成功的经历,总结下整个接入流程大体包含以下几点:

amazon官方文档:https://github.com/amzn/selling-partner-api-docs/blob/main/guides/en-US/developer-guide/SellingPartnerApiDeveloperGuide.md

这个文档里面其实包含了各种情况下你所需要做的事情,所谓的各种情况指的是配置方式不同接入方式也不同,但是官方文档一股脑全写在这里了,所以开发者在看完并按照文档在平台配置完了之后代码执行依然出现403 forbidden\400 bad request等各种错误(最后会详细说下各种错误的产生和解决方式),下面是我自己的方式:

1.amazon的开发者账号,即你需要先拥有一个开发者的账号才能做其他事

这块只要按提示进行邮件申请就好,网上资料也较多,这里不再赘述。

申请开发者账号链接:Amazon Developer Services

点击链接,点击右上角登陆

点击“创建您的Amazon Developer账户”

后面的详细流程可以自行百度,文章也较多,填好资料提交等待amazon官方审核就行了

下面是重点内容,因为代码中所涉及的一些核心属性字段都是由下面几步产生的。

2.创建AWS账户

具体创建流程在amazon官方文档中有给到具体链接,可以点击进去查看(亚马逊AWS海外区域账户免费套餐_免费云服务-AWS云服务

3.创建IAM的用户,角色,策略

官方地址:https://console.aws.amazon.com/iam/home?#/users

注意这里很重要,说一句,用户是用户,角色是角色,这俩其实是2种不同的接入方式,只不过都要和策略相关联罢了,如果你采用角色的方式去实现数据拉取的话,那么在后续平台的其他配置或者是代码中的参数都必须是用role,而不是user,切记,混用的话就会出现403 forbidden,具体的可以参考下面这篇文章(Amazon Selling Partner API 开发笔记)

创建IAM用户(User)

生成AWS访问密钥编码:accessKeyId以及AWS访问密钥:secretKey),注意这2个值必须在创建好了之后立马记录下来,后面要用到。

创建IAM策略,按下图步骤进行

创建成功之后可按下图查看刚刚创建的策略:

创建IAM职权,其实就是角色(role)

看官方的文档,其实这里写的也是很详细的,按步骤一步步走下去创建就好。

点击角色,

这里有个角色ARN:RoleArn, copy下来,后面代码里面要用

向 IAM 用户添加 AWS 安全令牌服务策略

在选择操作的时候,为了图省事的话直接勾选“所有STS策略”,

点开下面的资源,这里的示例是配置role ARN的,下面的user ARN也是相同的配法(这里的user应该可以不配置,因为我这边是用的role方式)

4.注册应用程序并授权

从这里开始在官方文档里就写的有点让人难以理解了,说了好几种授权,而且文档感觉有点乱,我这里采用的是后面的“自行授权”。

官方地址:Amazon Sign-In

点击“应用商店”-->"开发应用程序"

点击“添加新的APP客户端”,如果这里是置灰的需要发邮件到亚马逊去申请开通。

注意:这里的IAM ARN千万不要写成user的,开头有说到,采用角色的方式,而不是用户的方式,所以这里的ARN必须是role的,且后面代码里面也必须是role的。另外,因为是自行授权,这里的登陆URL和重定向URL都不要填。

在开发者中心给应用程序授权:

点击授权,点击生成刷新令牌,注意这里就是后面代码里面要用到的refreshToken,很重要

多次授权生成的多个令牌,每个都是有效的,反正官方文档是这样讲的

在开发者中心,点击查看:

注意:这里有2个值很重要也是后面编程要用到的,即客户端编码:ClientId,客户端秘钥:ClientSecret。

到这里,平台配置基本上是OK的了,总结下后续编码需要从平台拿的几个值如下:

中文解释英文名称英文说明来源
AWS访问密钥编码accessKeyIdAWS access key Id创建新的IAM用户之后
AWS访问密钥secretKeyAWS secret access key创建新的IAM用户之后
IAM职权ARNroleArnARN of the IAM role创建IAM role的时候生成
LWA客户端编码clientIdLWA client identifier在注册应用程序时生成
LWA客户端秘钥clientSecretLWA client secret在注册应用程序时生成
LWA客户端令牌refreshTokenLWA refresh token在给应用程序授权时生成

编码还需要用到的几个值,在后面会讲到,一般都是根据region来决定的,不是平台生成的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值