樂天電商商品數(shù)據(jù) API 的具體調(diào)用示例

以下以日本樂天市場(Rakuten Ichiba)商品搜索 API為例(樂天不同地區(qū)的電商 API 略有差異,韓國樂天需參考其開放平臺文檔),提供具體調(diào)用示例,包含請求參數(shù)構(gòu)造、簽名生成、代碼實現(xiàn)(Python)及返回結(jié)果解析。

一、前提條件

已在樂天開發(fā)者平臺(日本)注冊賬號,創(chuàng)建應(yīng)用并獲取:

Application ID(API Key)

Secret Key(部分接口需簽名時使用,商品搜索 API 基礎(chǔ)版可僅用 Application ID)

參考樂天官方文檔:商品搜索 API

二、API 基礎(chǔ)信息

接口名稱:商品搜索(IchibaItemSearch)

請求方式:GET

請求地址:https://app.rakuten.co.jp/services/api/IchibaItemSearch/20220601

核心參數(shù):

參數(shù)名 類型 必填 說明

applicationId string 是 開發(fā)者的 Application ID

keyword string 否 搜索關(guān)鍵詞(如 “智能手機(jī)”)

genreId string 否 分類 ID(可通過分類 API 獲取)

page int 否 頁碼,默認(rèn) 1,最大 100

hits int 否 每頁條數(shù),默認(rèn) 30,最大 30

format string 否 返回格式,支持json/xml,默認(rèn)json

三、調(diào)用示例

1. 簡單 curl 調(diào)用(無需簽名)

bash

運行

curl "https://app.rakuten.co.jp/services/api/IchibaItemSearch/20220601?applicationId=你的ApplicationID&keyword=iPhone&hits=10&format=json"

AI寫代碼

2. Python 代碼實現(xiàn)(含簽名,若接口要求)

部分樂天 API(如高級接口)需對請求參數(shù)進(jìn)行 HMAC-SHA256 簽名,以下示例包含參數(shù)排序、簽名生成、請求發(fā)送完整流程:

python

運行

import requests

import hashlib

import hmac

import time

from urllib.parse import urlencode, quote_plus

# 配置信息

APPLICATION_ID = "你的ApplicationID"

SECRET_KEY = "你的SecretKey"

API_URL = "https://app.rakuten.co.jp/services/api/IchibaItemSearch/20220601"

# 構(gòu)造請求參數(shù)

params = {

? ? "applicationId": APPLICATION_ID,

? ? "keyword": "iPhone 15",

? ? "hits": 5,

? ? "page": 1,

? ? "format": "json",

? ? "timestamp": str(int(time.time()))? # 部分接口需時間戳防重放

}

# 步驟1:按參數(shù)名ASCII升序排序

sorted_params = sorted(params.items(), key=lambda x: x[0])

# 步驟2:拼接參數(shù)為"key=value&key=value"格式(值需URL編碼)

param_string = "&".join([f"{k}={quote_plus(str(v))}" for k, v in sorted_params])

# 步驟3:生成簽名(HMAC-SHA256)

signature = hmac.new(

? ? SECRET_KEY.encode("utf-8"),

? ? param_string.encode("utf-8"),

? ? hashlib.sha256

).hexdigest()

# 步驟4:添加簽名到參數(shù)

params["signature"] = signature

# 發(fā)送請求

response = requests.get(API_URL, params=params)

result = response.json()

# 打印結(jié)果

print("請求URL:", response.url)

print("\n返回數(shù)據(jù):")

for item in result.get("Items", []):

? ? item_info = item["Item"]

? ? print(f"商品名稱:{item_info['itemName']}")

? ? print(f"價格:{item_info['itemPrice']}日元")

? ? print(f"商品鏈接:{item_info['itemUrl']}\n")

AI寫代碼

四、返回結(jié)果解析(JSON 示例)

json

{

? "Items": [

? ? {

? ? ? "Item": {

? ? ? ? "itemCode": "123456789",

? ? ? ? "itemName": "iPhone 15 256GB ブルー SIMフリー",

? ? ? ? "itemPrice": 128000,

? ? ? ? "itemUrl": "https://item.rakuten.co.jp/shop/iphone15/",

? ? ? ? "shopName": "樂天官方旗艦店",

? ? ? ? "stock": true,

? ? ? ? "imageUrl": "https://thumbnail.image.rakuten.co.jp/..."

? ? ? }

? ? }

? ],

? "count": 1,

? "page": 1,

? "hits": 5,

? "totalCount": 1200

}

AI寫代碼

關(guān)鍵字段說明:

Items:商品列表數(shù)組

itemName:商品名稱(含規(guī)格)

itemPrice:商品價格(日元,韓國樂天為韓元)

itemUrl:商品詳情頁鏈接

stock:庫存狀態(tài)(true為有貨)

五、常見錯誤及解決

錯誤碼 原因 解決方法

401 Application ID 無效 檢查開發(fā)者后臺的應(yīng)用 ID 是否正確

403 權(quán)限不足 / 簽名錯誤 確認(rèn) API 權(quán)限已開通,或簽名生成邏輯有誤

429 調(diào)用頻率超限 降低請求頻次,或申請?zhí)嵘漕~

500 服務(wù)器內(nèi)部錯誤 稍后重試,或聯(lián)系樂天開發(fā)者支持

注意事項

樂天日本 / 韓國 / 全球版 API 的端點和參數(shù)略有差異,需以對應(yīng)地區(qū)的開放平臺文檔為準(zhǔn);

商品價格、庫存等數(shù)據(jù)為實時動態(tài),需定期調(diào)用更新;

商用場景需遵守樂天 API 的使用條款(如禁止爬蟲批量抓取、數(shù)據(jù)商用授權(quán))。

如有疑問請聯(lián)系我或評論。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容