如何使用AliExpress API获取商品评论(支持地区和页码选择)

智驭车手

在跨境电商开发中,AliExpress(速卖通)平台提供了丰富的API接口,帮助开发者获取商品数据。其中,获取商品评论的API允许用户指定地区和页码进行分页查询,这对于分析市场反馈至关重要。本文将详细介绍如何调用此API,包括准备工作、参数设置、示例代码及注意事项。所有内容基于AliExpress Open Platform的公开文档,确保真实可靠。

1. API概述

AliExpress的商品评论API用于查询指定商品的用户评价。核心功能包括:

支持地区筛选:通过国家代码(如US表示美国)过滤评论来源。

分页查询:使用page参数指定页码,page_size控制每页显示条数(默认为10)。

响应格式:返回JSON数据,包含评论列表、总页数等信息。

API端点通常为:

https://api.aliexpress.com/item/get_reviews
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

调用前需认证,使用API key确保安全。

2. 准备工作

在调用API前,需完成以下步骤:

注册开发者账号:访问AliExpress Open Platform注册,并创建应用。

获取API key:在应用控制台中生成app_key和app_secret,用于签名认证。

安装依赖:推荐使用Python的requests库发送HTTP请求。安装命令:

pip install requests

3. 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$表示向上取整。

4. 示例调用(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}")
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

5. 响应解析

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
  }
}

6. 注意事项

频率限制:AliExpress API有调用配额(如每秒10次),超出会返回错误。使用page参数分页时,避免高频请求。

认证安全:app_secret需保密,签名算法防止篡改。

错误处理:常见错误码包括400(参数无效)、403(认证失败)。检查参数格式,例如country必须为有效代码。

分页优化:当$T$较大时,建议缓存总页数,减少重复计算。公式$P = lceil T / n rceil$中$n$不宜过大,以防超时。

数据更新:评论数据可能延迟,实时性需结合业务需求。

通过此API,您可以高效获取全球用户的反馈,优化商品策略。更多细节参考AliExpress API文档。如有疑问,欢迎在评论区交流!

审核编辑 黄宇