一、背景与接口概述
1688开放平台提供了丰富的API接口,允许开发者获取店铺商品、订单、物流等数据。本文重点讲解如何调用 “获取店铺所有商品” 接口(需确认官方接口名,如alibaba.product.list.get),并提供完整的代码实现。
二、准备工作
注册开发者账号
前往 1688开放平台 申请成为开发者,创建应用并获取 App Key 和 App Secret。
权限申请
确保应用已申请 商品信息读取 权限(具体名称以平台为准)。
获取店铺ID
目标店铺的 seller_id(可通过店铺URL或商家信息接口查询)。
三、接口分析
1. 接口地址
text
Copy Code
https://gw.open.1688.com/api/param2/1/com.alibaba.product/alibaba.product.list.get
2. 请求方式
HTTP GET(推荐)或 POST(具体以官方文档为准)。
3. 请求参数
参数名 必填 说明
seller_id 是 店铺ID
page 否 页码,默认1
page_size 否 每页数量,最大100
access_token 是 OAuth2.0认证后的访问令牌
4. 返回值示例
json
Copy Code
{
"code": 0,
"data": {
"product_list": [
{
"product_id": "123456",
"title": "示例商品",
"price": "29.90",
"stock": 100
}
],
"total_count": 1
}
}
四、代码实现(Python示例)
1. 获取Access Token
python
Copy Code
import requests
def get_access_token(app_key, app_secret):
url = "https://gw.open.1688.com/auth/token"
params = {
"grant_type": "client_credentials",
"client_id": app_key,
"client_secret": app_secret
}
response = requests.get(url, params=params)
return response.json().get("access_token")
2. 调用商品列表接口
python
Copy Code
def get_all_products(seller_id, access_token, page=1, page_size=100):
url = "https://gw.open.1688.com/api/param2/1/com.alibaba.product/alibaba.product.list.get"
headers = {"Authorization": f"Bearer {access_token}"}
params = {
"seller_id": seller_id,
"page": page,
"page_size": page_size
}
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
return response.json()
else:
raise Exception(f"接口调用失败: {response.text}")
# 示例调用
app_key = "your_app_key"
app_secret = "your_app_secret"
seller_id = "target_seller_id"
access_token = get_access_token(app_key, app_secret)
products_data = get_all_products(seller_id, access_token)
print(products_data)
3. 分页获取全部商品
python
Copy Code
def fetch_all_products(seller_id, access_token):
all_products = []
page = 1
while True:
data = get_all_products(seller_id, access_token, page=page)
products = data.get("data", {}).get("product_list", [])
if not products:
break
all_products.extend(products)
page += 1
return all_products
五、注意事项
频率限制
1688接口通常有调用频率限制(如每分钟100次),需合理控制请求间隔。
错误处理
检查返回码 code,常见错误如 401(Token失效)或 400(参数错误)。
数据缓存
建议缓存商品数据,避免频繁调用接口。
六、总结
通过上述代码,可快速实现1688店铺商品数据的批量获取,适用于商品同步、价格监控等场景。实际开发中需结合官方最新文档调整参数与认证方式。遇到问题可在评论区交流!
代码仓库地址:Github示例链接(示例代码需替换实际App Key)
延伸阅读:
1688开放平台文档:https://open.1688.com/doc
OAuth2.0认证详解