当前位置: 首页 > news >正文

Python对接亚马逊电商平台SP-API的一些概念理解准备

除了第三方服务商,其实亚马逊卖家本身也可以通过和SP-API的对接,利用程序来自动化亚马逊店铺销售运营管理中很多环节的工作,简单的应用比如可以利用SP-API的对接,实现亚马逊卖家后台各类报表的定期自动下载以及数据分析整理工作。数据跟踪分析对于亚马逊电商运营者来说,是一个非常重要,但相当繁琐费时费力的工作。而如果能够利用程序实现其中大部分工作的自动化,则可以大大解放其中需要的时间精力,达到事半功倍的效果。

亚马逊电商平台API对外开放的应用程序编程接口名字叫Amazon SP-API(selling partner API),在这之前,叫Marketplace Web Services,即MWS. 亚马逊卖家后台有个“销售伙伴应用商店”,里面有亚马逊批准的第三方应用程序,它们即是第三方利用亚马逊平台开放的API创建的,旨在帮助卖家更高效管理和发展业务的应用程序。

不过要成功实现SP-API的程序对接调用,在最开始的设置阶段,对于没有没有专业的编程学习基础的人来说,还是挺有挑战性的。下面即是我在开始的设置阶段,尝试对一些概念的梳理和理解。

SP-API调用凭证

本文的主要概念都是围绕如何获得调用SP-API的必需凭证而进行。需要的凭证包括:
refresh_token
lwa_app_id
lwa_client_secret
aws_access_key
aws_secret_key
role_arn

其中前面三个是在卖家后台开发者中心相关操作后获得,后面三个是在亚马逊AWS云服务的后台相关操作获得。

在调用SP-APT时,有多种方式可以将以上凭证传递进程序,其中下面是通过一个dic数据类型,将凭证直接以代码参数的形式传递进程序代码的示例。

credentials=dict(refresh_token='<refresh_token>',lwa_app_id='<lwa_app_id>',lwa_client_secret='<lwa_client_secret>',aws_secret_key='<aws_secret_access_key>',aws_access_key='<aws_access_key_id>',role_arn='<role_arn>',)

先说说AWS IAM

因为SP-API是通过亚马逊AWS云服务的的身份和访问管理框架(IAM)来来调用SP-API的。简单描述就是在AWS后台新建特定的IAM User用户和IAM Role角色,并同时为IAM User和IAM User绑定由SP-API限定的特定权限(policy),即IAM User Policy和IAM User policy.

所以整个过程需要分别在亚马逊卖家后台以及亚马逊AWS云服务操作后台进行操作。如果将整个过程划分为七个主要步骤的话,其中第一步和第七步是在卖家后台进行,中间五步是在亚马逊aws后台操作。

第一步:创建开发人员资料

在亚马逊后台的第一步操作的主要目标是创建开发人员资料并开通开发者中心。这一步基本上没有什么难度,尤其是如果只是作为自己店铺使用的私人应用开发,按照步骤指引填写相关资料等待亚马逊审核通过就可以了。有一点稍注意的是在SP-API Rolees选择时,将除受限角色外的角色都可以选上。当开发人员资料审核通过,开发中心开通之后,第二步到第五步的操作将在AWS后台进行。

 

 

第二步准备好AWS帐号

如果我们还没有AWS帐号的话,需要提前注册一个免费帐号。

注册好帐号后,亚马逊aws操作后台登陆在以下链接 https://Aws.amazon.com/consol

 

第三步 新建IAM User

然后第二步的操作是在aws操作后台打开IAM后台并新建一个IAM user用户。IAM后台链接如下:https://console.aws.amazon.com/iam

IAM的全称是Identity and access management,代表身份和访问管理。在AWS中,比如有IAM user, IAM group, IAM role等几种不同的身份,AWS通过在不同Identity上绑定不同的policy来限定不同身份对应的权限。

在这一步中,我们将新建IAM user.我们选用的凭证类型是“access key - Programmic access”

需要注意的是,此时我们注册的IAM user是没有权限的,因为我们还没有在上面绑定policy. 所以会有下面的提示.

当IAM User新建成功后,提示页面会有“Access key ID”和“secret access key”的两项信息,并提供CSV下载链接选项,它们就是文章前面提到的调用SP-API的凭证的其中两个。即aws_access_keyaws_secret_key

 

第四步:给新建IAM User绑定policy

在建立好的IAM User后,我们将创建一个IAM policy来定义对SP-API的调用权限。

这一步是针对新建的“SellingPartner”这个IAM user进行policy的绑定。因为这是我们专门为调用SP-API而新建的user,它的policy也是和调用SP-API的要限相关。而这个权限是SP-API定义的,所以我们需要在此IAM user对应的policy选项下,将里面的jason文件替换成SP-API官方文档中定义的这部分policy.

 

 

第五步:新建IAM Role并绑定policy

SP-API的官方指导建议我们新建IAM Role,但是没有IAM Role也不是不能工作。IAM Role主要是用来验证对SP-API的调用(authenticate calls to SP-API)。IAM role与IAM user非常相似,因为它们都是具有权限策略(由policy来限定)的身份,决定该身份在AWS中可以做什么和不能做什么。不同的是,IAM role角色没有相关的凭证(密码或访问密钥),而是依靠一种临时安全凭证来访问AWS的方式。在新建IAM Role的过程中,会自动带到绑定policy的步骤,在这一步绑定前面IAM User新建的policy即可。这样IAM Role也获得调用SP-API的权限。

IAM ROLE

第六步:给IAM用户中添加AWS STS polity

AWS IAM设置的最后一步是向新建的IAM用户添加绑定AWS安全令牌服务,或STS策略。它在这里主要是一个AssumeRole policy,即允许IAM用户使用临时安全凭证来验证SP-API的请求。获得前面新建IAM Role的调用SP-API所需的权限。这些临时凭证由一个访问密钥ID、一个秘密访问密钥和一个安全令牌组成。

 

 

 

有关AWS ARN

ARN的全称是“Amazon Resource Names”,在AWS中它是一种文件命名惯例,用于识别亚马逊网络服务(AWS)公共云中的特定资源。ARN是AWS特有的,它帮助管理员在AWS产品和API调用中跟踪和使用AWS Items和policy。

通过它可以唯一地识别AWS资源。当我们需要在所有AWS中明确指定一个资源时,需要用到ARN,在我们前面新建IAM User,IAM Role以及分别绑定policy的时候,则IAM User,IAM Role和policy都对应一个ARN,在AWS后台可以查看项目对应的ARN信息. 在调用SP-API时,则需要提供IAM ARN信息,这时我们提供ARN ROLE的信息。所以这是调用SP-API在AWS端的第三个凭证role_arn

 

第七步:在卖家后台开发者中心新增client app

当在AWS端的设置完成之后,最后还要回到亚马逊卖家后台开发者中心进行一步设置操作,这一步主要是通过新增client app以及对app的授权来获得调用SP-API必需的LMA凭证信息,包括“client identifier”和“client secret”两项,LMA凭证相当于是登陆凭证。在点击“Authorize app”后,会生成一串很长的“Refresh Token”. 在这一步中,我们即可以获得调用SP-API的其它三个凭证,即refresh_tokenlwa_app_idlwa_client_secret,其中lwa_app_idlwa_client_secret对应的是LMA凭证信息的“client identifier”和“client secret”两项

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== 编辑

相关文章:

Python对接亚马逊电商平台SP-API的一些概念理解准备

❝ 除了第三方服务商&#xff0c;其实亚马逊卖家本身也可以通过和SP-API的对接&#xff0c;利用程序来自动化亚马逊店铺销售运营管理中很多环节的工作&#xff0c;简单的应用比如可以利用SP-API的对接&#xff0c;实现亚马逊卖家后台各类报表的定期自动下载以及数据分析整理工…...

[Halcon3D] 主流的3D光学视觉方案及原理

&#x1f4e2;博客主页&#xff1a;https://loewen.blog.csdn.net&#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;本文由 丶布布原创&#xff0c;首发于 CSDN&#xff0c;转载注明出处&#x1f649;&#x1f4e2;现…...

Go Web下gin框架使用(二)

〇、gin 路由 Gin是一个用于构建Web应用程序的Go语言框架&#xff0c;它具有简单、快速、灵活的特点。在Gin中&#xff0c;可以使用路由来定义URL和处理程序之间的映射关系。 r : gin.Default()// 访问 /index 这个路由// 获取信息r.GET("/index", func(c *gin.Con…...

算法笔记-线段树合并

线段树合并 前置知识&#xff1a;权值线段树、动态开点 将两棵线段树的信息合并成一棵线段树。 可以新建一颗线段树保存原来两颗线段树的信息&#xff0c;也可以将第二棵线段树维护的信息加到第一棵线段树上。 前者的空间复杂度较高&#xff0c;如果合并之前的线段树不会再用…...

Fiddler抓取IOS数据包实践教程

Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。 本章教程,主要介绍如何利用Fiddler抓取IOS数据包相关教程。 目录 一、打开Fiddler监听端口 二、配置网…...

Ansible基础4——变量、机密、事实

文章目录 一、变量二、机密2.1 创建加密文件2.2 查看加密文件2.3 编辑加密文件内容2.4 加密现有文件2.5 解密文件2.6 更改加密密码 三、事实3.1 收集展示事实3.2 展示某个结果3.3 新旧事实命令3.4 关闭事实3.5 魔法变量 一、变量 常设置的变量&#xff1a; 要创建的用户要安装的…...

React实现Vue的watch监听属性

在 Vue 中可以简单地使用 watch 来监听数据的变化&#xff0c;还能获取到改变前的旧值&#xff0c;而在 React 中是没有 watch 的。 React中比较复杂&#xff0c;但是我们如果想在 React 中实现一个类似 Vue 的 watch 监听属性&#xff0c;也不是没有办法。 在React类组件中实…...

axios、跨域与JSONP、防抖和节流

文章目录 一、axios1、什么是axios2、axios发起GET请求3、axios发起POST请求4、直接使用axios发起请求 二、跨域与JSONP1、了解同源策略和跨域2、JSONP&#xff08;1&#xff09;实现一个简单的JSONP&#xff08;2&#xff09;JSONP的缺点&#xff08;3&#xff09;jQuery中的J…...

macOS Ventura 13.5beta2 (22G5038d)发布

系统介绍 黑果魏叔 6 月 1 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 2 更新&#xff08;内部版本号&#xff1a;22G5038d&#xff09;&#xff0c;本次更新距离上次发布隔了 12 天。 macOS Ventura 带来了台前调度、连续互通相机、Fac…...

jwt----介绍,原理

token&#xff1a;服务的生成的加密字符串&#xff0c;如果存在客户端浏览器上&#xff0c;就叫cookie -三部分&#xff1a;头&#xff0c;荷载&#xff0c;签名 -签发&#xff1a;登录成功&#xff0c;签发 -认证&#xff1a;认证类中认证 # jwt&…...

Three.js--》实现3d水晶小熊模型搭建

目录 项目搭建 初始化three.js基础代码 加载背景纹理 加载小熊模型 今天简单实现一个three.js的小Demo&#xff0c;加强自己对three知识的掌握与学习&#xff0c;只有在项目中才能灵活将所学知识运用起来&#xff0c;话不多说直接开始。 项目搭建 本案例还是借助框架书写…...

《阿里大数据之路》研读笔记(1)

首先先看到OLAP和OLTP的区别&#xff1a; OLTP(Online transaction processing):在线/联机事务处理。典型的OLTP类操作都比较简单&#xff0c;主要是对数据库中的数据进行增删改查&#xff0c;操作主体一般是产品的用户或者是操作人员。 OLAP(Online analytical processing):…...

Logback 日志框架详解

一、Logback 简介 Logback 是一个日志框架&#xff0c;旨在成为 log4j 的替代品。它由 Ceki Glc 创建并维护&#xff0c;是一款开源的日志框架&#xff0c;是 slf4j&#xff08;Simple Logging Facade for Java&#xff09;的实现。相比于 log4j&#xff0c;Logback 具有更高的…...

BIO、NIO、AIO 有什么区别?

BIO (Blocking I/O)&#xff1a; Block IO 同步阻塞式 IO &#xff0c;传统 IO&#xff0c;特点是模式简单、使用方便&#xff0c;并发处理能力低。 同步阻塞 I/O 模式&#xff0c;数据的读取写入必须阻塞在一个线程内等待其完成&#xff0c;在活动连接数不是特别高&#xff08…...

nginx和tomcat负载均衡、静态分离

tomcat重要目录 bin 存放启动和关闭Tomcat脚本conf存放Tomcat不同的配置文件doc存放Tomcat文档lib存放Tomcat运行需要的库文件logs存放Tomcat执行时的log文件src存放Tomcat的源代码webappsTomcat的主要Web发布目录work存放jsp编译后产生的class文件 nginx负载均衡原理 nginx实…...

用AI写出的高考作文!

今天是6月7日&#xff0c;又到了每一年高考的日子。小灰自己参加高考是在2004年&#xff0c;距离现在已经将近20年&#xff0c;现在回想起来&#xff0c;真的是恍如隔世。 今天高考语文的作文题是什么呢&#xff1f; 全国甲卷的题目是&#xff1a;人技术时间 人们因技术发展得以…...

chatgpt赋能python:Python屏幕输入介绍:了解命令行输入的基本知识

Python屏幕输入介绍&#xff1a;了解命令行输入的基本知识 Python是一种使用广泛的编程语言&#xff0c;用于编写各种类型的应用程序&#xff0c;包括图形用户界面应用程序和基于命令行的应用程序。对于基于命令行的应用程序来说&#xff0c;屏幕输入非常重要。本文将介绍Pyth…...

bert中文文本摘要代码(1)

bert中文文本摘要代码 写在最前面关于BERT使用transformers库进行微调 load_data.py自定义参数collate_fn函数BertDataset类主函数 tokenizer.py创建词汇表encode函数decode函数 写在最前面 熟悉bert&#xff0b;文本摘要的下游任务微调的代码&#xff0c;方便后续增加组件实现…...

为何溃坝事故频发,大坝安全如何保障?

随着水利水电工程的重要性日益突显&#xff0c;水库大坝安全越来越受到相关部门的重视。因为大坝的安全直接影响水利工程的功能与作用&#xff0c;因此对大坝安全的监测显得十分必要。大坝安全监测的作用是能够及时掌握大坝的运行状态&#xff0c;及时发现大坝的变形、渗漏等异…...

第十九章_手写Redis分布式锁

锁的种类 单机版同一个JVM虚拟机内synchronized或者Lock接口。 分布式多个不同JVM虚拟机&#xff0c;单机的线程锁机制不再起作用&#xff0c;资源类在不同的服务器之间共享了。 一个靠谱分布式锁需要具备的条件和刚需 独占性 &#xff1a;OnlyOne&#xff0c;任何时刻只能有且…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化

iOS 应用的发布流程一直是开发链路中最“苹果味”的环节&#xff1a;强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说&#xff0c;这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发&#xff08;例如 Flutter、React Na…...