乐天电商商品数据 API 的具体调用示例

以下以日本乐天市场(Rakuten Ichiba)商品搜索 API为例(乐天不同地区的电商 API 略有差异,韩国乐天需参考其开放平台文档),提供具体调用示例,包含请求参数构造、签名生成、代码实现(Python)及返回结果解析。

一、前提条件

已在乐天开发者平台(日本)注册账号,创建应用并获取:

Application ID(API Key)

Secret Key(部分接口需签名时使用,商品搜索 API 基础版可仅用 Application ID)

参考乐天官方文档:商品搜索 API

二、API 基础信息

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

请求方式:GET

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

核心参数:

参数名 类型 必填 说明

applicationId string 是 开发者的 Application ID

keyword string 否 搜索关键词(如 “智能手机”)

genreId string 否 分类 ID(可通过分类 API 获取)

page int 否 页码,默认 1,最大 100

hits int 否 每页条数,默认 30,最大 30

format string 否 返回格式,支持json/xml,默认json

三、调用示例

1. 简单 curl 调用(无需签名)

bash

运行

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

AI写代码

2. Python 代码实现(含签名,若接口要求)

部分乐天 API(如高级接口)需对请求参数进行 HMAC-SHA256 签名,以下示例包含参数排序、签名生成、请求发送完整流程:

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"

# 构造请求参数

params = {

    "applicationId": APPLICATION_ID,

    "keyword": "iPhone 15",

    "hits": 5,

    "page": 1,

    "format": "json",

    "timestamp": str(int(time.time()))  # 部分接口需时间戳防重放

}

# 步骤1:按参数名ASCII升序排序

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

# 步骤2:拼接参数为"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:添加签名到参数

params["signature"] = signature

# 发送请求

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

result = response.json()

# 打印结果

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

print("\n返回数据:")

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写代码

四、返回结果解析(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写代码

关键字段说明:

Items:商品列表数组

itemName:商品名称(含规格)

itemPrice:商品价格(日元,韩国乐天为韩元)

itemUrl:商品详情页链接

stock:库存状态(true为有货)

五、常见错误及解决

错误码 原因 解决方法

401 Application ID 无效 检查开发者后台的应用 ID 是否正确

403 权限不足 / 签名错误 确认 API 权限已开通,或签名生成逻辑有误

429 调用频率超限 降低请求频次,或申请提升配额

500 服务器内部错误 稍后重试,或联系乐天开发者支持

注意事项

乐天日本 / 韩国 / 全球版 API 的端点和参数略有差异,需以对应地区的开放平台文档为准;

商品价格、库存等数据为实时动态,需定期调用更新;

商用场景需遵守乐天 API 的使用条款(如禁止爬虫批量抓取、数据商用授权)。

如有疑问请联系我或评论。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容