通用參數
-
app_key:應用的唯一標識,用于驗證應用身份,調用API時必須提供。
-
timestamp:請求時間戳,通常為當前時間的毫秒級時間戳,用于防止請求被重放攻擊。
-
format:返回數據的格式,通常為
json
,也可以是xml
。 -
sign:簽名,通過對請求參數和應用密鑰進行特定算法計算得出,用于保證請求的合法性和完整性。
-
v:API的版本號,確保調用的是正確的API版本。
業務參數
-
category_id:商品類目ID,用于篩選特定類目的商品列表。
-
page_no:頁碼,指定獲取商品列表的頁碼。
-
page_size:每頁商品數量,指定每頁返回的商品數量。
-
num_iids:商品ID列表,用逗號分隔,用于指定要獲取詳情的具體商品。
-
keyword:搜索關鍵詞,用于搜索商品。
-
start_price:價格區間下限。
-
end_price:價格區間上限。
-
sort:排序方式,如
_sale
(銷量降序)、price
(價格升序)等。 -
filter:附加過濾條件,如地區、優惠類型等。
-
fields:需要返回的字段列表,用逗號分隔,例如
sku_id,price,quantity
。
示例代碼
以下是一個使用Python的requests
庫調用1688商品詳情API的示例代碼:
Python
import requests
import time
import hashlib# 替換為你的app_key和app_secret
app_key = 'your_app_key'
app_secret = 'your_app_secret'# 商品ID
product_id = '123456789'# 構造請求參數
params = {'app_key': app_key,'timestamp': str(int(time.time() * 1000)),'format': 'json','productId': product_id
}# 生成簽名
def generate_sign(params, app_secret):sorted_params = sorted(params.items(), key=lambda x: x[0])sign_str = app_secretfor key, value in sorted_params:sign_str += f'{key}{value}'sign_str += app_secretsign = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()return signparams['sign'] = generate_sign(params, app_secret)# 發送請求
try:response = requests.get('https://api.1688.com/openapi/param2/1/com.alibaba.product/getProductDetailInfo/', params=params)response.raise_for_status()result = response.json()print(result)
except requests.exceptions.RequestException as e:print(f"請求出錯: {e}")
except ValueError as e:print(f"解析JSON數據出錯: {e}")
通過以上參數和代碼示例,你可以成功調用1688的API接口,獲取商品詳情等數據。