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_tokenlwa_app_idlwa_client_secretaws_access_keyaws_secret_keyrole_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_key和aws_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_token,lwa_app_id和lwa_client_secret,其中lwa_app_id和lwa_client_secret对应的是LMA凭证信息的“client identifier”和“client secret”两项
相关文章:
Python对接亚马逊电商平台SP-API的一些概念理解准备
❝ 除了第三方服务商,其实亚马逊卖家本身也可以通过和SP-API的对接,利用程序来自动化亚马逊店铺销售运营管理中很多环节的工作,简单的应用比如可以利用SP-API的对接,实现亚马逊卖家后台各类报表的定期自动下载以及数据分析整理工…...
[Halcon3D] 主流的3D光学视觉方案及原理
📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…...
Go Web下gin框架使用(二)
〇、gin 路由 Gin是一个用于构建Web应用程序的Go语言框架,它具有简单、快速、灵活的特点。在Gin中,可以使用路由来定义URL和处理程序之间的映射关系。 r : gin.Default()// 访问 /index 这个路由// 获取信息r.GET("/index", func(c *gin.Con…...
算法笔记-线段树合并
线段树合并 前置知识:权值线段树、动态开点 将两棵线段树的信息合并成一棵线段树。 可以新建一颗线段树保存原来两颗线段树的信息,也可以将第二棵线段树维护的信息加到第一棵线段树上。 前者的空间复杂度较高,如果合并之前的线段树不会再用…...
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 魔法变量 一、变量 常设置的变量: 要创建的用户要安装的…...
React实现Vue的watch监听属性
在 Vue 中可以简单地使用 watch 来监听数据的变化,还能获取到改变前的旧值,而在 React 中是没有 watch 的。 React中比较复杂,但是我们如果想在 React 中实现一个类似 Vue 的 watch 监听属性,也不是没有办法。 在React类组件中实…...
axios、跨域与JSONP、防抖和节流
文章目录 一、axios1、什么是axios2、axios发起GET请求3、axios发起POST请求4、直接使用axios发起请求 二、跨域与JSONP1、了解同源策略和跨域2、JSONP(1)实现一个简单的JSONP(2)JSONP的缺点(3)jQuery中的J…...
macOS Ventura 13.5beta2 (22G5038d)发布
系统介绍 黑果魏叔 6 月 1 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.5 开发者预览版 Beta 2 更新(内部版本号:22G5038d),本次更新距离上次发布隔了 12 天。 macOS Ventura 带来了台前调度、连续互通相机、Fac…...
jwt----介绍,原理
token:服务的生成的加密字符串,如果存在客户端浏览器上,就叫cookie -三部分:头,荷载,签名 -签发:登录成功,签发 -认证:认证类中认证 # jwt&…...
Three.js--》实现3d水晶小熊模型搭建
目录 项目搭建 初始化three.js基础代码 加载背景纹理 加载小熊模型 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 项目搭建 本案例还是借助框架书写…...
《阿里大数据之路》研读笔记(1)
首先先看到OLAP和OLTP的区别: OLTP(Online transaction processing):在线/联机事务处理。典型的OLTP类操作都比较简单,主要是对数据库中的数据进行增删改查,操作主体一般是产品的用户或者是操作人员。 OLAP(Online analytical processing):…...
Logback 日志框架详解
一、Logback 简介 Logback 是一个日志框架,旨在成为 log4j 的替代品。它由 Ceki Glc 创建并维护,是一款开源的日志框架,是 slf4j(Simple Logging Facade for Java)的实现。相比于 log4j,Logback 具有更高的…...
BIO、NIO、AIO 有什么区别?
BIO (Blocking I/O): Block IO 同步阻塞式 IO ,传统 IO,特点是模式简单、使用方便,并发处理能力低。 同步阻塞 I/O 模式,数据的读取写入必须阻塞在一个线程内等待其完成,在活动连接数不是特别高(…...
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日,又到了每一年高考的日子。小灰自己参加高考是在2004年,距离现在已经将近20年,现在回想起来,真的是恍如隔世。 今天高考语文的作文题是什么呢? 全国甲卷的题目是:人技术时间 人们因技术发展得以…...
chatgpt赋能python:Python屏幕输入介绍:了解命令行输入的基本知识
Python屏幕输入介绍:了解命令行输入的基本知识 Python是一种使用广泛的编程语言,用于编写各种类型的应用程序,包括图形用户界面应用程序和基于命令行的应用程序。对于基于命令行的应用程序来说,屏幕输入非常重要。本文将介绍Pyth…...
bert中文文本摘要代码(1)
bert中文文本摘要代码 写在最前面关于BERT使用transformers库进行微调 load_data.py自定义参数collate_fn函数BertDataset类主函数 tokenizer.py创建词汇表encode函数decode函数 写在最前面 熟悉bert+文本摘要的下游任务微调的代码,方便后续增加组件实现…...
为何溃坝事故频发,大坝安全如何保障?
随着水利水电工程的重要性日益突显,水库大坝安全越来越受到相关部门的重视。因为大坝的安全直接影响水利工程的功能与作用,因此对大坝安全的监测显得十分必要。大坝安全监测的作用是能够及时掌握大坝的运行状态,及时发现大坝的变形、渗漏等异…...
第十九章_手写Redis分布式锁
锁的种类 单机版同一个JVM虚拟机内synchronized或者Lock接口。 分布式多个不同JVM虚拟机,单机的线程锁机制不再起作用,资源类在不同的服务器之间共享了。 一个靠谱分布式锁需要具备的条件和刚需 独占性 :OnlyOne,任何时刻只能有且…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
