一、接口概述
淘寶開放平臺提供的 taobao.item.get 接口,用于獲取單個商品的詳細(xì)信息。通過此接口,開發(fā)者可以獲取商品的基礎(chǔ)信息、庫存規(guī)格、營銷信息等。
接口地址
- HTTPS GET:https://eco.taobao.com/router/rest
核心參數(shù)
參數(shù)名稱 | 是否必填 | 類型 | 描述 |
---|---|---|---|
method | 是 | String | 固定值 taobao.item.get |
num_iid | 是 | Long | 商品 ID,從商品詳情頁 URL 中提取 |
fields | 是 | String | 指定返回字段,如 title,price,desc |
timestamp | 是 | String | 請求時間戳,格式 YYYY-MM-DD HH:MM:SS ,與平臺時間偏差需 ≤5 分鐘 |
app_key | 是 | String | 應(yīng)用的 App Key |
sign_method | 是 | String | 簽名方法,固定值 md5 |
v | 是 | String | API 版本,固定值 2.0 |
format | 是 | String | 返回數(shù)據(jù)格式,固定值 json |
sign | 是 | String | 請求簽名,用于驗證請求的合法性 |
二、簽名生成
淘寶 API 采用 MD5 簽名機制,確保請求安全。簽名生成步驟如下:
- 參數(shù)排序:除 sign 外所有參數(shù)按字典序排序。
- 拼接字符串:參數(shù)名 + 參數(shù)值拼接,首尾加 App Secret。
- MD5 加密:對拼接字符串進(jìn)行 32 位大寫 MD5 加密。
Python 簽名示例
import hashlib
def generate_sign(params, app_secret):
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
三、調(diào)用示例
以下是一個完整的 Python 調(diào)用示例,展示如何使用 taobao.item.get 接口獲取商品詳情。
1. 準(zhǔn)備工作
- 安裝 requests 庫,用于發(fā)送 HTTP 請求。bash復(fù)制pip install requests
2. 完整代碼示例
import requests
import hashlib
import time
def generate_sign(params, app_secret):
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
def get_item_details(app_key, app_secret, num_iid):
url = "https://eco.taobao.com/router/rest"
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
params = {
"method": "taobao.item.get",
"app_key": app_key,
"timestamp": timestamp,
"format": "json",
"v": "2.0",
"sign_method": "md5",
"num_iid": num_iid,
"fields": "num_iid,title,price,pic_url,desc,skus,stock,promotion_price,activity_tag,ai_tag"
}
params["sign"] = generate_sign(params, app_secret)
response = requests.get(url, params=params)
data = response.json()
if "item_get_response" in data:
return data["item_get_response"]["item"]
else:
print("Error:", data.get("error_response", {}).get("msg", "未知錯誤"))
return None
# 示例調(diào)用
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
num_iid = "652874751412"
item_info = get_item_details(app_key, app_secret, num_iid)
if item_info:
print("商品標(biāo)題:", item_info["title"])
print("價格:", item_info["price"])
print("主圖鏈接:", item_info["pic_url"])
print("SKU信息:", item_info.get("skus", []))
3. 響應(yīng)示例
成功調(diào)用接口后,返回的 JSON 數(shù)據(jù)示例如下:
{
"item_get_response": {
"item": {
"num_iid": "652874751412",
"title": "示例商品",
"price": "99.00",
"pic_url": "https://example.com/image.jpg",
"desc": "商品詳細(xì)描述...",
"skus": [
{
"sku_id": "123456789",
"price": "99.00",
"quantity": 100,
"properties": "顏色:紅色;尺碼:M"
}
],
"stock": 100,
"promotion_price": "89.00",
"activity_tag": "限時折扣",
"ai_tag": "網(wǎng)紅爆款"
}
}
}
四、字段選擇策略
2025 年,taobao.item.get 接口新增了 AI 智能標(biāo)簽等字段,合理選擇 fields 參數(shù)可以提升效率。以下是一些核心字段及其適用場景:
字段類別 | 核心字段示例 | 適用場景 | 權(quán)限要求 |
---|---|---|---|
基礎(chǔ)信息 | num_iid,title,price,pic_url | 商品列表展示 | 個人 / 企業(yè)賬號 |
庫存規(guī)格 | skus,stock,specs | 庫存管理、規(guī)格展示 | 企業(yè)賬號 |
營銷信息 | promotion_price,activity_tag | 促銷活動對接 | 企業(yè)賬號 |
AI 智能字段 | ai_tag (如 "網(wǎng)紅爆款") | 智能選品、趨勢分析 | 企業(yè)賬號 |
詳情內(nèi)容 | desc,desc_images | 商品詳情頁展示 | 企業(yè)賬號 最佳實踐:按業(yè)務(wù)場景精確指定字段,例如選品工具可使用 fields=num_iid,title,price,ai_tag,stock,避免請求無關(guān)字段浪費配額。 |
五、最佳實踐與注意事項
1. 調(diào)用頻率控制
- 免費版 API 有調(diào)用頻率限制(通常為 500 次/天)。
- 商業(yè)版可申請更高調(diào)用配額。
2. 數(shù)據(jù)緩存策略
- 對不常變的數(shù)據(jù)(如商品標(biāo)題、圖片)進(jìn)行本地緩存。
- 對價格、庫存等實時性要求高的數(shù)據(jù)設(shè)置較短緩存時間。
3. 異常處理建議
- 網(wǎng)絡(luò)異常重試機制。
- 接口限流處理。
- 錯誤日志記錄。
4. 安全注意事項
- 妥善保管 App Secret。
- 使用 HTTPS 協(xié)議傳輸。
- 對用戶輸入的 item_id 進(jìn)行合法性校驗。
- 通過本文的介紹和代碼示例,開發(fā)者可以快速掌握淘寶商品詳情接口的調(diào)用方法,在實際項目中集成淘寶商品數(shù)據(jù)。根據(jù)業(yè)務(wù)需求,可以進(jìn)一步擴展功能,如商品搜索、訂單同步等。
如遇任何疑問或有進(jìn)一步的需求,請隨時與我私信或者評論聯(lián)系。