1688商品详情接口(APP商品详情采集接口,H5商品详情采集接口)

99 阅读3分钟

1688 商品详情接口是 1688 开放平台为开发者提供的,用于获取 1688 平台上商品详细信息的接口,APP 和 H5 商品详情采集接口均基于此,其核心接口为 “item_get” 或 “alibaba.product.get”。以下是关于该接口的详细介绍:

  • 接口功能:可以获取商品的基本信息,如商品 ID、标题、价格、库存等;图片信息,包含主图、详情图等图片链接;规格参数,如颜色、尺寸、材质等;销售数据,如销量、评价等;以及关联信息,如相似商品推荐、关联搭配等。

  • 接入前准备

    • 注册开发者账号:访问 1688 开放平台官网,选择 “企业开发者” 或 “个人开发者” 身份进行注册,按提示完成实名认证,审核通过后获得开发者权限。
    • 创建应用并获取凭证:登录开放平台后,进入 “控制台 - 应用管理” 创建应用,填写相关信息并提交审核。审核通过后,在应用详情页获取 App Key 和 App Secret,这是接口调用时的身份识别和签名验证的关键凭证。
    • 权限申请:在应用详情页申请 “alibaba.product.get” 接口权限,个人开发者可能需要额外提交用途说明,企业开发者权限相对更全。
  • 核心请求参数

    • app_key:应用唯一标识,必填免费申请
    • method:接口名称,固定为 “com.alibaba.product.alibaba.product.get”,必填。
    • timestamp:时间戳,格式为 “yyyy-MM-dd HH:mm:ss”,与服务器时间误差不超过 10 分钟,必填。
    • format:响应格式,通常为 “json”,必填。
    • v:接口版本,当前最新版本为 “2.0”,必填。
    • sign:签名值,用于验证请求合法性,必填。
    • productId:1688 商品 ID,可从商品详情页 URL 中提取,必填。
    • fields:需返回的字段列表,多个字段用逗号分隔,不填则返回全部字段,可选。
  • 接口签名生成

    • 签名机制:1688 API 采用 HMAC - MD5 签名机制。
    • 生成步骤:收集所有请求参数(不含 sign 本身),按参数名 ASCII 码升序排序,按 “参数名 = 参数值” 的格式拼接所有排序后的参数,在拼接字符串末尾添加 “&secret=App Secret”,用 App Secret 对最终字符串进行 HMAC - MD5 加密,生成签名值。
  • 接口调用示例(Python)

python

运行

import hashlib
import time
import requests


def generate_sign(params, app_secret):
    params_str = '&'.join(('{}={}'.format(k, v) for k, v in sorted(params.items())))
    sign_str = f"app_key={params['app_key']}&timestamp={params['timestamp']}&{params_str}&app_secret={app_secret}"
    m = hashlib.md5()
    m.update(sign_str.encode('utf - 8'))
    return m.hexdigest().upper()


def get_product_details(app_key, app_secret, product_id):
    url = "https://api.1688.com/router/json"
    params = {
        "method": "alibaba.product.get",
        "fields": "product_id,product_title,price,main_image_url,product_desc",
        "product_id": product_id,
        "app_key": app_key,
        "timestamp": int(time.time()),
        "format": "json",
        "sign_method": "md5",
        "v": "2.0"
    }
    params['sign'] = generate_sign(params, app_secret)
    response = requests.get(url, params=params)
    return response.json()


# 示例调用
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
product_id = "123456789"
details = get_product_details(app_key, app_secret, product_id)
print(details)