通用参数
-
app_key:应用的唯一标识,用于验证应用身份,调用API时必须提供。
-
timestamp:请求时间戳,通常为当前时间的毫秒级时间戳,用于防止请求被重放攻击。
-
format:返回数据的格式,通常为
json
,也可以是xml
。 -
sign:签名,通过对请求参数和应用密钥进行特定算法计算得出,用于保证请求的合法性和完整性。
-
v:API的版本号,确保调用的是正确的API版本。
业务参数
-
category_id:商品类目ID,用于筛选特定类目的商品列表。
-
page_no:页码,指定获取商品列表的页码。
-
page_size:每页商品数量,指定每页返回的商品数量。
-
num_iids:商品ID列表,用逗号分隔,用于指定要获取详情的具体商品。
-
keyword:搜索关键词,用于搜索商品。
-
start_price:价格区间下限。
-
end_price:价格区间上限。
-
sort:排序方式,如
_sale
(销量降序)、price
(价格升序)等。 -
filter:附加过滤条件,如地区、优惠类型等。
-
fields:需要返回的字段列表,用逗号分隔,例如
sku_id,price,quantity
。
示例代码
以下是一个使用Python的requests
库调用1688商品详情API的示例代码:
Python
import requests
import time
import hashlib
# 替换为你的app_key和app_secret
app_key = 'your_app_key'
app_secret = 'your_app_secret'
# 商品ID
product_id = '123456789'
# 构造请求参数
params = {
'app_key': app_key,
'timestamp': str(int(time.time() * 1000)),
'format': 'json',
'productId': product_id
}
# 生成签名
def generate_sign(params, app_secret):
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = app_secret
for key, value in sorted_params:
sign_str += f'{key}{value}'
sign_str += app_secret
sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
return sign
params['sign'] = generate_sign(params, app_secret)
# 发送请求
try:
response = requests.get('https://api.1688.com/openapi/param2/1/com.alibaba.product/getProductDetailInfo/', params=params)
response.raise_for_status()
result = response.json()
print(result)
except requests.exceptions.RequestException as e:
print(f"请求出错: {e}")
except ValueError as e:
print(f"解析JSON数据出错: {e}")
通过以上参数和代码示例,你可以成功调用1688的API接口,获取商品详情等数据。