(某音)商品详情接口douyin.item_get_app Java 开发实战指南

admin4周前API知识79

前言

在电商生态、短视频带货、选品分析、订单回溯、商品监控等业务场景中,获取抖音商品详情数据是最核心、最基础的能力。item_get_app 是抖音开放平台 / 第三方数据服务中标准、稳定、高适配移动端的商品详情获取接口,专门用于获取抖音商城内商品的完整信息。
本文将以 Java 后端开发视角,完整讲解:
  • 接口用途与场景

  • 请求 / 响应结构

  • Java 代码实现(可直接复制运行)

  • 签名、请求头、参数封装

  • 常见异常与生产环境优化

让你快速完成抖音商品详情接口对接。

一、接口介绍

1.1 接口名称

item_get_app —— 抖音 APP 端商品详情获取接口

1.2 接口作用

通过商品 ID(productId /itemId)获取抖音商品全量详情数据
  • 商品标题、副标题、类目

  • 主图、轮播图、详情图

  • 售价、原价、优惠券、佣金

  • SKU 规格(颜色、尺码、库存)

  • 商品卖点、服务、发货地、时效

  • 店铺信息、评分、销量

1.3 适用场景

  • 电商选品工具

  • 商品图片 / 标题 / 规格采集

  • 价格监控、库存监控

  • 订单系统商品回填

  • 商城小程序、APP 商品展示

  • 数据分析、达人带货选品


二、接口基础信息

  • 请求方式:POST / GET(推荐 POST)

  • 数据格式:JSON

  • 编码:UTF-8

  • 请求地址:由数据服务 / 开放平台提供(示例地址仅用于演示)

  • 身份认证key + secret 鉴权

  • 必填参数:商品 ID(num_iid /product_id)


三、请求参数说明

3.1 公共参数(必传)

表格
参数名类型说明
keyString身份密钥
secretString签名密钥
methodString固定值:item_get_app

3.2 业务参数(必传)

表格
参数名类型说明
num_iidString抖音商品 ID(从链接中解析)

3.3 可选参数

表格
参数名说明
platform默认:douyin
get_sku是否获取 SKU,默认 true

四、响应结构(常用字段)

json
{
  "code": 200,
  "msg": "success",
  "data": {
    "num_iid": "123456789",
    "title": "商品标题",
    "price": "99.0",
    "original_price": "199.0",
    "images": ["https://..."],
    "desc_images": ["https://..."],
    "shop_name": "店铺名称",
    "sku_list": [
      {
        "sku_id": "123",
        "properties": "颜色:红色",
        "price": "99.0",
        "stock": 100
      }
    ]
  }}

五、Java 实现代码(可直接运行)

5.1 依赖(Maven)

xml
<dependencies>
    <!-- HTTP 请求 -->
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-http</artifactId>
        <version>5.8.20</version>
    </dependency>
    <!-- JSON 解析 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson2</artifactId>
        <version>2.0.32</version>
    </dependency></dependencies>

5.2 工具类:DouYinItemApi.java

java
运行
import cn.hutool.http.HttpRequest;import com.alibaba.fastjson2.JSON;import com.alibaba.fastjson2.JSONObject;public class DouYinItemApi {

    // 接口地址(实际使用时替换为真实地址)
    private static final String API_URL = "https://api.example.com/item_get_app";
    private static final String KEY = "你的key";
    private static final String SECRET = "你的secret";

    /**
     * 获取抖音商品详情
     * @param numIid 商品ID
     * @return 详情JSON字符串
     */
    public static String getItemDetail(String numIid) {
        try {
            // 构建参数
            JSONObject params = new JSONObject();
            params.put("key", KEY);
            params.put("secret", SECRET);
            params.put("method", "item_get_app");
            params.put("num_iid", numIid);
            params.put("get_sku", true);

            // 发送 POST 请求
            String result = HttpRequest.post(API_URL)
                    .timeout(10000)
                    .body(params.toJSONString())
                    .execute()
                    .body();

            return result;

        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    // 测试
    public static void main(String[] args) {
        String numIid = "抖音商品ID";
        String detail = getItemDetail(numIid);
        System.out.println(detail);
    }}

六、实体类封装(便于业务使用)

java
运行
import lombok.Data;import java.util.List;@Datapublic class DouYinItemVO {
    private String numIid;       // 商品ID
    private String title;       // 标题
    private String price;       // 现价
    private String originalPrice;// 原价
    private List<String> images;// 主图
    private List<String> descImages;// 详情图
    private String shopName;    // 店铺名
    private List<Sku> skuList;  // 规格

    @Data
    public static class Sku {
        private String skuId;
        private String properties;
        private String price;
        private Integer stock;
    }}

解析示例

java
运行
// 解析返回结果JSONObject resJson = JSON.parseObject(result);if (resJson.getIntValue("code") == 200) {
    DouYinItemVO item = resJson.getObject("data", DouYinItemVO.class);
    System.out.println("商品标题:" + item.getTitle());
    System.out.println("价格:" + item.getPrice());}

七、高频异常与解决方案

7.1 code = 401 未授权

  • key/secret 错误

  • 账号过期、IP 未授权

7.2 code = 400 参数错误

  • 缺少 num_iid

  • 商品 ID 格式错误

7.3 code = 404 商品不存在

  • 商品已删除 / 下架 / 屏蔽

7.4 超时

  • 加大超时时间:10s

  • 增加重试机制

7.5 无 SKU 返回

  • 商品无多规格

  • get_sku=false


八、生产环境高可用建议

  1. 超时设置:10s

  2. 重试机制:2 次,间隔 1s

  3. 降级缓存:热点商品缓存 5~15 分钟

  4. 并发控制:避免高频并发触发限流

  5. 日志脱敏:不打印 key/secret

  6. 异常监控:监控 401、429、500 错误


九、总结

item_get_app 是抖音生态中最稳定、最常用的商品详情接口,Java 接入非常简单:
  • 传入商品 ID

  • 携带 key/secret

  • 发送请求 → 解析数据

即可快速实现:商品采集、价格监控、选品分析、订单回填、商城展示等功能。


相关文章

一文带你了解API 接口测试 | 了解 API 接口测试 | API 接口测试文档

一、什么是 API 接口测试API(Application Programming Interface)接口测试是软件测试的一种类型,它直接对应用程序的接口进行测试,验证系统组件之间的数据交换、业务逻...

API测试:确保系统稳定性的关键环节

在当今数字化时代,应用程序接口(API)已成为软件开发中不可或缺的组成部分。API允许不同的软件系统之间进行交互和通信,从而实现功能的集成和数据的共享。然而,API的稳定性和可靠性对于整个系统的正常运...

如何保障 API 接口的安全性和稳定性

在当今数字化时代,API(应用程序编程接口)已成为软件系统之间交互的核心组件。然而,API 接口的安全性和稳定性至关重要,因为它们直接关系到数据的保密性、完整性和可用性。本文将详细介绍如何保障 API...

接口调用的代码实现:从入门到实战

接口调用是现代软件开发中最基础、最核心的技能之一。本文将从最基础的 HTTP 请求讲起,逐步深入到生产级的接口调用方案,涵盖多种技术栈和实际场景。一、基础篇:HTTP 请求的核心原理1.1 HTTP...

API 知识详细解析

一、什么是 APIAPI(Application Programming Interface,应用程序编程接口)是一组预定义的函数、协议和工具,用于构建软件应用程序。它定义了不同软件组件之间的交互方式...

爬虫获取API接口的实战指南

在当今数字化时代,API接口已成为获取网络数据的重要途径。通过API接口,可以高效地获取结构化数据,避免繁琐的HTML解析,提高数据抓取的效率和稳定性。本文将详细介绍如何通过爬虫技术获取API接口数据...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。