教程:使用 Python SDK 自动调用 SP-API
借助“使用亚马逊账户登录” (LWA) 令牌交换和身份验证,自动执行 SP-API 调用。
本教程为您提供了生成带有使用亚马逊账户登录 (LWA) 令牌交换和身份验证功能的 Python SDK 所需的所有详细信息,以便您无缝构建应用程序。您将了解构建 Python SDK 所需的前提条件,并查看使用销售伙伴 API(用于订单)和 Swagger 代码生成器的示例。
您可以使用此 SDK 将亚马逊商城功能集成到您的应用程序中,包括访问商品信息、管理订单、处理发货等。
教程
以下教程将帮助您设置自己的 Python SDK,以自动化 SP-API 调用。
先决条件
要完成本教程,您需要满足以下前提条件:
- 处于草稿或发布状态的混合或 SP-API 应用
- 集成开发环境 (IDE) 软件
- Python(3.6 或更高版本)
swagger-codegen-cli-2.3
(或更高版本)此工具用于从 SP-API 的 Swagger 定义生成 Python 客户端代码。
在您的应用程序可以连接到销售伙伴 API 之前,您必须对其进行注册,并且它必须获得销售伙伴的授权。如果您没有混合或 SP-API 应用,请按照注册为开发者、注册您的应用程序和授权销售伙伴 API 应用程序步骤进行操作。然后,返回到本教程。
接下来,为教程设置工作区。
第 1 步:设置工作区
-
在本地驱动器上,为此项目创建一个目录,命名为
SPAPI_Python_SDK
,并导航到新目录。 -
克隆 client repo。
-
下载以下工具。
- IDE 软件(本逐步指南使用的是 Windows 操作系统上的 Visual Studio IDE)
- Python(3.6 或更高版本)。您可以从 python.org 下载此软件。
-
在终端中运行以下命令以下载 Swagger Code Jar:
`wget https://repo1.maven.org/maven2/io/swagger/swagger-codegen-cli/2.4.13/swagger-codegen-cli-2.4.13.jar -O swagger-codegen-cli.jar` -
将
swagger-codegen-cli.jar
复制到本地目录C:\\SPAPI_Python_SDK
中。 -
在终端中运行以下命令,以在您的环境中安装 Python
backoff
库:pip install backoff -
在 GitHub 上,转到
https://github.com/amzn/selling-partner-api-models/tree/main/models
并运行以下命令将selling-partner-api-models
存储库克隆到本地目录C:\\SPAPI_Python_SDK
。git clone https://github.com/amzn/selling-partner-api-models
现在您已完成所需的设置,下一步是在本地目录 C:\\SPAPI_Python_SDK
中生成带有身份验证和授权类的 Python SDK。
第 2 步:从 Swagger 定义生成 Python 客户端
-
在本地目录
C:\\SPAPI_Python_SDK
中找到您要使用的 SP-API API 模型(例如,订单 API)的 Swagger JSON 文件。 -
在终端中运行以下命令以生成客户端代码。请务必替换为您的设置中的路径和 API 模型。
java -jar /[path_to_swagger_jar]/swagger-codegen-cli.jar generate -l python -t /[path_to_mustach_resources]/resources/ -D packageName=swagger_client -o /[path_to_client_folder]/client/[SP-API_NAME] -i /[path_to_model_folder]/models/[SP-API_NAME]/SP-API.json
现在您已经生成了 Python 客户端,您需要集成身份验证模型。
第 3 步:集成身份验证模块
- 在 SDK 下载的目录
C:\\SPAPI_Python_SDK
中找到auth
和spapi
客户端代码文件夹。 - 更新以下 Python 文件中的路径:
spapiclient.py
和LwaRequest.py
。每个文件都包含关于要更新内容的说明。
设置好身份验证后,您现在就可以设置 Python SDK 包了。
第 4 步:设置 Python SDK 包
- 导航到 SDK 生成的目录
C:\\SPAPI_Python_SDK
。 - 使用以下代码创建一个
setup.py
文件。此文件对于打包您的 SDK 是必需的。请确保用您的包和依赖项信息替换示例中的信息。
from setuptools import setup, find_packages
setup(
name='SellingPartnerAPIAuthAndAuthPython', # Replace with your package's name
version='1.0.0', # Replace with your package's version
package_dir={'': 'src'}, # Replace 'src' as necessary
packages=find_packages(where='src'),
install_requires=[line.strip() for line in open("requirements.txt", "r")],
description='A Python SDK for Amazon Selling Partner API',
long_description=open('README.md').read(),
long_description_content_type='text/markdown',
url='TBD'
)
设置好 Python SDK 后,您现在就可以创建订单 API 实例了。
第 5 步:创建订单 API 实例并调用操作
以下是如何使用 Python SDK 和订单 API 发起 getOrders
请求的示例。使用您的信息更新代码,然后在终端中运行代码。
if __name__ == "__main__":
from auth.credentials import SPAPIConfig
config = SPAPIConfig(
client_id="Your client-id",
client_secret="Your client-secret",
refresh_token="Your refresh-token",
region="NA", # Possible values NA, EU, FE, and SANDBOX
scope = None # Required for grant_type='client_credentials' ; Possible values "sellingpartnerapi::notifications" and "sellingpartnerapi::migration"
)
from spapi.spapiclient import SPAPIClient
# Create the API Client
print("Config and client initialized...")
api_client = SPAPIClient(config)
marketplace_ids = ["ATVPDKIKX0DER"]
created_after = "2024-01-19T00:00:00"
orders_api = api_client.get_api_client('OrdersV0Api')
orders_response = orders_api.get_orders(marketplace_ids=marketplace_ids, created_after=created_after)
print("Orders API Response:")
print(orders_response)
小心
切勿将此文件提交到版本控制系统,因为它包含敏感信息。请确保这些 LWA 凭证以加密格式安全存储。
状态代码 200 表示 API 调用成功。
第 6 步:使用生成的 Python SDK 连接到销售伙伴 API
在终端中运行以下命令,以在本地构建和安装 SDK:
python3 setup.py sdist bdist_wheel
pip install dist/{YourPackageName}-1.0.0-py3-none-any.whl
在终端中运行以下测试脚本,以测试 Python SDK:
python test.py
状态代码 200 表示 API 调用成功。
结论
在本教程中,您学习了如何使用 Python 的 SP-API SDK 自动化 SP-API 调用。在逐步指南中,您学习了如何设置工作区、为销售伙伴 API 生成 Python SDK、连接到订单 API 并发起第一次 API 调用。
Updated 23 days ago