在跨境电商开发中,AliExpress(速卖通)平台提供了丰富的API接口,帮助开发者获取商品数据。其中,获取商品评论的API允许用户指定地区和页码进行分页查询,这对于分析市场反馈至关重要。本文将详细介绍如何调用此API,包括准备工作、参数设置、示例代码及注意事项。所有内容基于AliExpress Open Platform的公开文档,确保真实可靠。
- API概述
AliExpress的商品评论API用于查询指定商品的用户评价。核心功能包括:
支持地区筛选:通过国家代码(如US表示美国)过滤评论来源。
分页查询:使用page参数指定页码,page_size控制每页显示条数(默认为10)。
响应格式:返回JSON数据,包含评论列表、总页数等信息。
API端点通常为:
https://api.aliexpress.com/item/get_reviews
调用前需认证,使用API key确保安全。
- 准备工作
在调用API前,需完成以下步骤:
注册开发者账号:访问AliExpress Open Platform注册,并创建应用。
获取API key:在应用控制台中生成app_key和app_secret,用于签名认证。
安装依赖:推荐使用Python的requests库发送HTTP请求。安装命令:
pip install requests
- API参数详解
调用API时需传递以下参数(所有参数均为必填,除非注明):
product_id:商品唯一ID(如123456789)。
country:地区代码(ISO 3166-1 alpha-2格式),例如US(美国)、CN(中国)。可选参数,未指定时返回所有地区评论。
page:页码(整数,从1开始),用于分页查询。
page_size:每页评论数(整数,默认为10,最大可设100)。
app_key:您的API key。
sign:请求签名,通过app_secret生成(使用HMAC-SHA1算法)。
分页逻辑:假设总评论数为$T$,每页显示$n$条,则总页数$P$计算为: $$P = \lceil T / n \rceil$$ 其中$\lceil \cdot \rceil$表示向上取整。
- 示例调用(Python代码)
以下是一个完整的Python示例,演示如何获取商品评论(以商品ID 123456为例,地区设置为美国,页码为1):
import requests
import hashlib
import hmac
import base64
import time
import json
配置参数
app_key = "YOUR_APP_KEY" # 替换为您的API key
app_secret = "YOUR_APP_SECRET" # 替换为您的API secret
product_id = "123456"
country = "US" # 地区代码
page = 1 # 页码
page_size = 20 # 每页条数
生成签名(基于AliExpress文档规范)
def generate_sign(params, secret):
sorted_params = sorted(params.items())
query_str = "&".join([f"{k}{v}" for k, v in sorted_params])
sign = hmac.new(secret.encode('utf-8'), query_str.encode('utf-8'), hashlib.sha1).digest()
return base64.b64encode(sign).decode('utf-8')
构建请求参数
params = {
"method": "aliexpress.item.reviews.get",
"app_key": app_key,
"timestamp": str(int(time.time())),
"product_id": product_id,
"country": country,
"page": page,
"page_size": page_size,
"format": "json",
"v": "2.0"
}
params["sign"] = generate_sign(params, app_secret)
发送API请求
url = "https://api.aliexpress.com/router/rest"
response = requests.get(url, params=params)
处理响应
if response.status_code == 200:
data = response.json()
reviews = data.get("aliexpress_item_reviews_get_response", {}).get("reviews", [])
total_pages = data.get("aliexpress_item_reviews_get_response", {}).get("total_pages", 1)
print(f"成功获取评论!总页数: {total_pages}")
for review in reviews:
print(f"用户: {review['user_name']}, 评分: {review['rating']}, 内容: {review['content']}")
else:
print(f"请求失败,状态码: {response.status_code}, 错误信息: {response.text}")
- 响应解析
API响应为JSON格式,关键字段包括:
reviews:评论列表,每个评论对象包含user_name(用户名)、rating(评分,1-5星)、content(评论内容)等。
total_pages:总页数(基于page_size计算)。
current_page:当前页码。
示例响应片段:
{
"aliexpress_item_reviews_get_response": {
"reviews": [
{
"user_name": "John Doe",
"rating": 5,
"content": "质量非常好!",
"country": "US"
}
],
"total_pages": 5,
"current_page": 1
}
}
- 注意事项
频率限制:AliExpress API有调用配额(如每秒10次),超出会返回错误。使用page参数分页时,避免高频请求。
认证安全:app_secret需保密,签名算法防止篡改。
错误处理:常见错误码包括400(参数无效)、403(认证失败)。检查参数格式,例如country必须为有效代码。
分页优化:当$T$较大时,建议缓存总页数,减少重复计算。公式$P = \lceil T / n \rceil$中$n$不宜过大,以防超时。
数据更新:评论数据可能延迟,实时性需结合业务需求。
通过此API,您可以高效获取全球用户的反馈,优化商品策略。更多细节参考AliExpress API文档。如有疑问,欢迎在评论区交流!