【Python 沃尔玛接口调用】调用沃尔玛官方接口获取授权access_token

电子说

1.4w人已加入

描述

1、打开卖家的后台,打开设置

2、将页面翻到最底部,然后打开api密钥管理

3、账号分两个,一个是生产环境,一个是沙盒环境(测试环境),切记,无论什么环境,都有调用的次数限制(有些接口没有限制,比如获取授权token),具体是多少我也不清楚,每一个店铺账号都不一样,需要问客服

4、然后我们要复制一下【ClientID】和【ClientSecret】,【ClientSecret】需要打开控制台进行复制,打开控制台后定位到【ClientSecret】位置,在html代码里复制,如果还不会操作,评论里问一下。

5、python代码直接演示,把刚刚复制的内容粘贴进去即可请求

【附上代码】

import base64

import requests

import uuid

import json

# 获取 Basic Authorization

def get_authorization(client_secret, client_id):

'''

:param client_secret: Client Secret

:param client_id: Client ID

:return: 将 Client ID 和 Client Secret 经过base64加密,获取Basic Authorization 头部授权信息

'''

credentials = f"{client_id}:{client_secret}"

encoded_credentials = base64.b64encode(credentials.encode('utf-8')).decode('utf-8')

return f"Basic {encoded_credentials}"

# 获取生产环境Token

def get_production_access_token(authorization, shop_settings):

'''

:param authorization: Basic Authorization 头部授权信息

:param shop_settings: 字典格式 {'account_name': 'xiaoming'} account_name 指向用你的沃尔玛账号名称

:return: {"access_token":"eyJraWQiOiIyZTBh......“,"token_type":"Bearer","expires_in":900}

'''

# 设置请求头

headers = {

"Authorization": authorization,

"WM_SVC.NAME": shop_settings['account_name'],

"WM_QOS.CORRELATION_ID": str(uuid.uuid4()), # UUID要随机

"Content-Type": "application/x-www-form-urlencoded",

"Accept": "application/json"

}

try:

# https://marketplace.walmartapis.com/v3/token 生产环境

# https://sandbox.walmartapis.com/v3/token # 测试环境

# 发起 POST 请求

response = requests.post(

url="https://marketplace.walmartapis.com/v3/token",

headers=headers,

data="grant_type=client_credentials"

)

# 打印响应信息(调试用)

print("响应状态码:", response.status_code)

print("响应文本:", response.text)

if response.status_code != 200:

raise Exception(f"请求失败,状态码: {response.status_code}")

# 解析返回的 JSON 数据

response_data = json.loads(response.text)

access_token = response_data.get("access_token")

if not access_token:

raise Exception("获取 Token 失败")

print(f"生成的 Token: {access_token}")

return access_token

except Exception as e:

print(f"获取生产环境 Token 异常: {str(e)}")

return None

# 示例调用

shop_settings = {

'account_name': 'xxxxxxx' # 你的沃尔玛账号名称 或者自定义 比如:zhangfei

}

# 替换为你的 Client ID 和 Client Secret

ClientID = "xxxxx-xxx-xxx-8e31-xxxxxxxx"

ClientSecret = "UxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxWWg"

authorization = get_authorization(ClientSecret, ClientID)

token = get_production_access_token(authorization, shop_settings)

# 输出 token

print(f"生产环境的 Access Token: {token}")


审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分