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

news2024/11/25 21:28:06

除了第三方服务商,其实亚马逊卖家本身也可以通过和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== 编辑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/621726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享两个小众的办公软件

01 Apache OpenOffice是一款开源办公套件软件&#xff0c;主要用于文档处理、电子表格、演示文稿和数据库管理等方面。它包括Writer、Calc、Impress、Draw和Base五个组件。 Writer是Apache OpenOffice的文本编辑器&#xff0c;可用于创建各种类型的文档&#xff0c;如信函、报…

四、文字到语音模型库之Bark

随着人工智能技术的发展,文本到音频(Text-to-Audio,简称 TTA)转换已经成为一个热门的研究领域,旨在通过深度学习模型将任意文本转换为逼真的音频,包括语音、音乐、声效等。近日,一家名为 Suno 的公司在 GitHub 上开源了一个名为 Bark 的 TTA 模型,引起了广泛关注。Bark…

Java stream多字段分组(groupingBy)

近期的项目里&#xff0c;遇到一个需求&#xff1a;对于含有多个元素的List<Person>&#xff0c;按照其中的某几个属性进行分组&#xff0c;比如Persion::getAge、Persion::getType、Persion::getGender等字段。下面就让我们讨论一下如何比较优雅的按多字段进行分组group…

vue3 使用element plus 打包时 报错

vue3vitetselementPlus中运行正常打包出错 能正常运行&#xff0c;但是打包出错 解决打包时出现导入element plus相关的爆红&#xff0c;导致无法打包的问题 如若出现类似于&#xff1a;Module ‘“element-plus”’ has no exported member ‘ElMessage’. Did you mean to …

使用Fiddler进行Mock测试的原理和方法

叨叨在前&#xff1a;之前工作中&#xff0c;做的纯接口测试&#xff0c;当时公司有自己的Mock平台&#xff0c;可以进行接口Mock测试。后来离开公司后&#xff0c;再想做Mock测试&#xff0c;就只能使用开源工具&#xff0c;或者自己用Flask写Mock了。今儿整理一下&#xff0c…

二、视频换脸

介绍一个优秀的开源项目,DeepFaceLab。开发者是来自俄罗斯的Iperov,同时,他也是曾经应用最广泛的DeepFaceLab的开发者质之一。开源地址:https://github.com/iperov/DeepFaceLab 而这种高质量伪造图像的背后,依托的是“生成对抗网络”(GAN)技术。这类网络由两个 AI 代…

chatgpt赋能python:Python嵌入包:让你的程序更灵活

Python嵌入包&#xff1a;让你的程序更灵活 Python是一种动态、面向对象、高级编程语言&#xff0c;被广泛应用于科学计算、Web开发、大数据、人工智能等领域。Python提供了大量的标准库和第三方库&#xff0c;让开发者能够快速、高效地实现各种功能需求。 但是&#xff0c;在…

ROS EKF 机器人位姿估计功能包:robot_pose_ekf 安装(Ubuntu20.04)

ROS EKF 机器人位姿估计功能包&#xff1a;robot_pose_ekf 安装&#xff08;Ubuntu20.04&#xff09; 功能包简介安装 功能包简介 robot_pose_ekf软件包用于基于来自不同来源的&#xff08;部分&#xff09;位姿测量值来估计机器人的3D姿势。它使用带有6D模型&#xff08;3D位…

想要精通算法和SQL的成长之路 - 两两交换链表中的节点

想要精通算法和SQL的成长之路 - 两两交换链表中的节点 前言一. 两两交换链表中的节点 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 两两交换链表中的节点 原题链接 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改…

1.8w 字的 SQL 优化大全

目录 1、MySQL的基本架构 1&#xff09;MySQL的基础架构图 2&#xff09;查询数据库的引擎 ① show engines; ② show variables like “%storage_engine%”; 3&#xff09;指定数据库对象的存储引擎 2. SQL优化 1&#xff09;为什么需要进行SQL优化&#xff1f; 2&am…

迷你版ChatGPT开源,教你怎么用nanoGPT训练一个写小说的AI机器人!

大家好,我是千与千寻,好久不见,最近太忙了,去医院拔了颗智齿,这不是刚休息一天,就立刻来给大家分享ChatGPT的新奇项目了。 ChatGPT的功能确实是好用,但是我觉得有一个小缺点,就是反应的时间比较慢,原因是GPT-3.5/GPT-4.0的模型体积较大,比较占用内存空间。 同时大模…

MySQL存储引擎介绍、InnoDB和MyISAM的区别

存储引擎是MySQL的核心组件&#xff0c;是存储数据、建立索引、更新/查询数据等技术的实现方式&#xff0c;存储引擎是基于表的&#xff0c;而不是基于库的&#xff0c;所以存储引擎也可被称为表类型。以在创建表的时候&#xff0c;来可以指定选择的存储引擎&#xff0c;如果没…

指针--指针变量的定义和初始化

存放变量的地址需要一种特殊类型的变量&#xff0c;这种特殊的数据类型就是指针&#xff08;Pointer&#xff09;。 具有指针类型的变量&#xff0c;称为指针变量&#xff0c;它时专门用于存储变量的地址值和变量。 其定义形式如下&#xff1a; 类型关键字 * 指针变量名&#x…

【Swift基础语法SnapKit自动布局库的使用】

文章目录 前言playgroundvar 和 let-元组string-字典-数组闭包enum类和对象属性类UI和OC的区别&#xff0c;更简洁懒加载全局文件snap kit的使用top 和 topMargin 总结 前言 最近在学习swift和写项目&#xff0c;给我的感受&#xff0c;语言简洁和安全&#xff0c;在学习了基础…

从GitHub上新拉一个项目并在mac系统下运行遇到的种种问题

如果项目已经被拉下来&#xff0c;现在我们要启动项目。 step1、需要了解该项目是什么&#xff0c;它的作用是什么&#xff0c;以及它可以解决的问题。阅读项目的介绍、文档和示例&#xff0c;确保对项目有一个基本的认识。 step2、设置开发环境&#xff1a;确保您的开发环境…

网络安全系统教程+渗透测试+学习路线(自学笔记)

一、什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

使用Smart Install Maker为应用制作安装程序

一. 前言 Unity发布发布PC平台exe的时候&#xff0c;是生成一个Data目录和一个exe文件&#xff0c;如下&#xff1a; 而一般软件发布的时候&#xff0c;是只有一个Setup.exe这样子的安装程序&#xff0c;可以使用Smart Install Maker这个软件来制作这个Setup.exe程序。 二. S…

函数重载与缺省参数

目录 一 缺省参数 缺省参数分半缺省和全缺省。 2&#xff0c;半缺省参数 3&#xff0c;全缺省参数 4.缺省参数的注意事项 二 函数重载 2 .函数重载参数类型不同强调 三 函数名修饰规则 一 缺省参数 1.缺省参数特性(备胎) 缺省参数是指我们定义函数时有给缺省值的参数&#xf…

chatgpt赋能python:Python开发APP的SEO优化指南

Python开发APP的SEO优化指南 Python是广受欢迎的编程语言&#xff0c;它用于开发各种应用程序&#xff0c;从简单的脚本到大型网络应用程序。SEO优化对于任何应用程序的成功都非常重要&#xff0c;这篇文章将介绍一些Python开发APP的SEO实践和技巧。 为什么需要SEO优化&#…

【OpenMMLab AI实战营第二期】目标检测与MMDetection

目标检测 目标检测的基本范式 划窗 使用卷积实现密集预测 锚框 多尺度检测与FPN 单阶段&无锚框检测器选讲 RPN YOLO、SSD Focal Loss与RetinaNet FCOS YOLO系列选讲 什么是目标检测 目标检测&#xff1a;给定一张图片&#xff0c;用矩形框框出所有感兴趣物体同…