商品详情API接口调用

71 阅读3分钟

你想要实现 1688 商品详情 API 的接口调用,核心是通过阿里巴巴开放平台(1688 Open Platform)的官方 API 来获取(推荐alibaba.item.get接口),以下是合规、可直接复用的完整实现步骤、示例代码及关键说明

一:. 核心信息获取

  1. 注册账号登录
  2. 进入开发者控制台,创建应用(选择 “1688 应用” 类型),完成应用审核后获取:
  • appKey(应用账号)

  • appSecret(应用秘钥)

  • 申请商品详情接口权限

  • 核心接口:1688.item.get(基础商品详情)、

二:核心依赖安装(Python)

pip install requests  # 发送HTTP请求
pip install hashlib   # 签名生成(1688 API采用MD5签名)
pip install time      # 时间戳生成(内置库,无需额外安装)

三、完整示例代码(获取 1688 商品详情)

import requests
import time
import hashlib
import urllib.parse

def generate_1688_sign(params: dict, app_secret: str) -> str:
    """
    生成1688 API签名(MD5加密,按官方规则)
    :param params: 所有请求参数(不含sign)
    :param app_secret: 1688开放平台appSecret
    :return: 签名字符串(小写)
    """
    # 1. 按参数名ASCII升序排序
    sorted_params = sorted(params.items(), key=lambda x: x[0])
    # 2. 拼接为"key=value"格式(值需URL编码,处理中文/特殊字符)
    sign_str = app_secret + "".join([
        f"{k}{urllib.parse.quote_plus(str(v), encoding='utf-8')}"
        for k, v in sorted_params
    ]) + app_secret
    # 3. MD5加密后转小写
    sign = hashlib.md5(sign_str.encode("utf-8")).hexdigest().lower()
    return sign
    # API供应商demo url=o0b.cn/ibrad 复制链接获取测试
    # 1. 构造请求参数(公共参数+业务参数)
    params = {
        # 公共参数
        "appKey": app_key,                  # 应用密钥
        "method": "alibaba.item.get",       # 接口方法名
        "format": "json",                   # 返回格式(默认json)
        "timestamp": str(int(time.time())), # 时间戳(秒级,与服务器时间偏差≤10分钟)
        "v": "2.0",                         # 接口版本
        # 业务参数
        "offerId": offer_id,                # 1688商品ID(必填)
        "fields": "offerId,subject,price,imageUrl,detailUrl,specInfo,skuInfo"  # 需返回的字段(可选,默认返回全部)
    }

    # 2. 生成签名并添加到参数中
    params["sign"] = generate_1688_sign(params, app_secret)

    # 3. 发送GET请求(1688 API支持GET/POST,推荐GET)
    try:
        response = requests.get(url, params=params, timeout=10)
        response.raise_for_status()  # 抛出HTTP错误(如404/500)
        result = response.json()
    except Exception as e:
        return {"error": f"请求失败:{str(e)}"}

    # 4. 解析返回结果
    if result.get("error_response"):
        error_msg = result["error_response"].get("msg", "未知错误")
        return {"error": f"接口调用失败:{error_msg}"}

    # 提取商品详情核心数据
    item = result.get("item", {})
    if not item:
        return {"error": "无商品详情数据(商品可能下架或无权限)"}

    item_detail = {
        "商品ID(offerId)": item.get("offerId"),
        "商品标题": item.get("subject"),
        "商品主图URL": item.get("imageUrl"),
        "商品价格(元)": item.get("price"),
        "商品详情页URL": item.get("detailUrl"),
        "商品规格信息": item.get("specInfo"),
        "商品SKU信息": item.get("skuInfo"),
        "商品销量": item.get("saleCount"),
        "店铺名称": item.get("sellerNick")
    }
    return item_detail

总结

  1. 实现 1688 商品详情 API 调用,优先使用 1688 开放平台官方接口alibaba.item.get),合规且数据完整。
  2. 调用前需完成账号注册、应用创建和权限申请,核心是生成正确key。
  3. 解析返回数据时,重点提取商品 ID、标题、价格、主图、规格等核心字段,适配批发选品、采购分析等业务场景。