?
引言
在電商系統(tǒng)開發(fā)或數(shù)據(jù)分析場景中,經(jīng)常需要獲取指定商品的詳細(xì)信息。拼多多開放平臺(tái)提供了豐富的API接口,其中獲取商品詳情是一個(gè)基礎(chǔ)且重要的功能。本文將介紹如何使用拼多多開放平臺(tái)的API,通過商品ID獲取商品的完整詳情數(shù)據(jù)。
核心流程
獲取商品詳情的主要步驟如下:
認(rèn)證與授權(quán):獲取有效的訪問令牌 (access_token)。
構(gòu)建請求:使用商品ID和其他必要參數(shù)構(gòu)造API請求。
發(fā)送請求:向拼多多API服務(wù)器發(fā)送HTTP請求。
解析響應(yīng):處理返回的JSON數(shù)據(jù),提取所需信息。
關(guān)鍵API
拼多多開放平臺(tái)中用于獲取商品詳情的核心API是: pdd.ddk.goods.detail (商品詳情查詢接口)
代碼示例 (Python)
以下是一個(gè)使用Python語言調(diào)用該API的示例代碼框架:
import requests import hashlib import time import json # 1. 準(zhǔn)備基礎(chǔ)信息 (需替換為你的實(shí)際信息) client_id = "YOUR_CLIENT_ID" # 開放平臺(tái)應(yīng)用ID client_secret = "YOUR_CLIENT_SECRET" # 開放平臺(tái)應(yīng)用密鑰 access_token = "YOUR_ACCESS_TOKEN" # 通過OAuth2.0獲取的有效令牌 goods_id = "1234567890" # 目標(biāo)商品ID # 2. 設(shè)置API地址 api_url = "https://open-api.pinduoduo.com/api/router" # 3. 構(gòu)造請求參數(shù) timestamp = str(int(time.time())) # 當(dāng)前時(shí)間戳 params = { "type": "pdd.ddk.goods.detail", # API方法名 "client_id": client_id, "timestamp": timestamp, "access_token": access_token, "goods_id_list": f'["{goods_id}"]' # 商品ID列表,支持批量查詢 } # 4. 生成簽名 (sign) - 拼多多API要求 # 4.1 按key排序參數(shù) sorted_params = sorted(params.items(), key=lambda x: x[0]) # 4.2 拼接鍵值對 param_str = client_secret for key, value in sorted_params: param_str += key + str(value) param_str += client_secret # 4.3 計(jì)算MD5 sign = hashlib.md5(param_str.encode('utf-8')).hexdigest().upper() params["sign"] = sign # 5. 發(fā)送GET請求 response = requests.get(api_url, params=params) # 6. 處理響應(yīng) if response.status_code == 200: data = response.json() # 檢查API返回是否成功 if data.get("error_response"): error_code = data["error_response"]["error_code"] error_msg = data["error_response"]["error_msg"] print(f"API調(diào)用失敗! 錯(cuò)誤碼: {error_code}, 錯(cuò)誤信息: {error_msg}") else: # 提取商品詳情 goods_detail = data["goods_detail_response"]["goods_details"][0] # 取第一個(gè)商品 # 示例: 輸出商品名稱和價(jià)格 print("商品名稱:", goods_detail["goods_name"]) print("商品價(jià)格:", goods_detail["min_group_price"] / 100) # 價(jià)格單位為分,需除以100 # 可以繼續(xù)解析其他字段: 圖片、描述、規(guī)格等 # print(json.dumps(goods_detail, indent=2, ensure_ascii=False)) # 打印完整詳情 else: print("網(wǎng)絡(luò)請求失敗, 狀態(tài)碼:", response.status_code)

參數(shù)說明
client_id 和 client_secret: 在拼多多開放平臺(tái)創(chuàng)建應(yīng)用后獲得。
access_token: 需要通過OAuth2.0授權(quán)流程獲取,代表用戶或商家的授權(quán)。具體獲取方法請參考開放平臺(tái)文檔。
goods_id_list: 需要查詢的商品ID列表,用JSON數(shù)組格式表示。示例中查詢單個(gè)商品。
timestamp: 請求發(fā)起的時(shí)間戳,精確到秒。
sign: 根據(jù) client_secret、所有參數(shù)(按key排序后拼接)和 client_secret 生成的MD5簽名,用于驗(yàn)證請求合法性。
響應(yīng)數(shù)據(jù)結(jié)構(gòu) (主要字段示例)
成功的響應(yīng)中,商品詳情主要包含在 goods_detail_response -> goods_details 列表中。每個(gè)商品對象包含豐富的信息,例如:
goods_id: 商品ID
goods_name: 商品名稱
goods_desc: 商品描述
goods_image_url: 商品主圖
min_group_price: 最小成團(tuán)價(jià) (單位:分)
category_id: 商品類目ID
category_name: 商品類目名稱
mall_id: 店鋪ID
mall_name: 店鋪名稱
goods_gallery_urls: 商品輪播圖列表
goods_properties: 商品規(guī)格屬性列表
... (更多字段請查閱官方文檔)
注意事項(xiàng)
權(quán)限申請: 確保你的應(yīng)用已申請并獲得調(diào)用 pdd.ddk.goods.detail 接口的權(quán)限。
訪問令牌管理: access_token 有有效期(通常2小時(shí)),過期后需要刷新或重新獲取。生產(chǎn)環(huán)境需要實(shí)現(xiàn)令牌的自動(dòng)刷新邏輯。
頻率限制: 拼多多API對調(diào)用頻率有限制,請遵守平臺(tái)規(guī)則,避免高頻請求觸發(fā)限流。
沙箱環(huán)境: 開發(fā)階段建議使用開放平臺(tái)提供的沙箱環(huán)境進(jìn)行測試。
錯(cuò)誤處理: 務(wù)必檢查響應(yīng)中的 error_response 字段,并根據(jù)錯(cuò)誤碼 (error_code) 進(jìn)行相應(yīng)的錯(cuò)誤處理。常見錯(cuò)誤如令牌過期 (error_code=61001)。
數(shù)據(jù)單位: 注意價(jià)格等字段的單位(如分),在展示給用戶前需要轉(zhuǎn)換。
結(jié)語
通過拼多多開放平臺(tái)的 pdd.ddk.goods.detail API,開發(fā)者可以方便地根據(jù)商品ID獲取到詳細(xì)的商品數(shù)據(jù)。掌握API調(diào)用、參數(shù)構(gòu)造、簽名生成和響應(yīng)解析是成功集成的關(guān)鍵。在開發(fā)過程中,務(wù)必參考最新的拼多多開放平臺(tái)官方文檔以獲取最準(zhǔn)確的接口定義和參數(shù)要求。
?
審核編輯 黃宇
-
API
+關(guān)注
關(guān)注
2文章
2481瀏覽量
67060
發(fā)布評(píng)論請先 登錄
拼多多開放平臺(tái)商品搜索API技術(shù)實(shí)踐指南
調(diào)用拼多多開放平臺(tái)API獲取店鋪所有商品列表
通過京東開放平臺(tái)API根據(jù)商品ID獲取商品詳情技術(shù)指南
調(diào)用樂天平臺(tái)API獲取商品詳情數(shù)據(jù)
???????閑魚平臺(tái)根據(jù)商品ID獲取商品詳情的API接口實(shí)現(xiàn)
拼多多搜索關(guān)鍵詞獲取商品信息的API接口
深入解析:如何通過接口獲取拼多多商品詳情數(shù)據(jù)
使用拼多多開放平臺(tái)API根據(jù)商品ID獲取商品詳情
評(píng)論