1688平台开放接口实战:如何通过API获取店铺所有商品数据(Python示例)
一、背景与接口概述
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认证详解
