前言
在电商生态、短视频带货、选品分析、订单回溯、商品监控等业务场景中,获取抖音商品详情数据是最核心、最基础的能力。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 公共参数(必传)
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | String | 身份密钥 |
| secret | String | 签名密钥 |
| method | String | 固定值:item_get_app |
3.2 业务参数(必传)
| 参数名 | 类型 | 说明 |
|---|---|---|
| num_iid | String | 抖音商品 ID(从链接中解析) |
3.3 可选参数
| 参数名 | 说明 |
|---|---|
| platform | 默认:douyin |
| get_sku | 是否获取 SKU,默认 true |
四、响应结构(常用字段)
{
"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)
<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
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);
}
}
六、实体类封装(便于业务使用)
import lombok.Data;
import java.util.List;
@Data
public 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;
}
}
解析示例
// 解析返回结果
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
八、生产环境高可用建议
- 超时设置:10s
- 重试机制:2 次,间隔 1s
- 降级缓存:热点商品缓存 5~15 分钟
- 并发控制:避免高频并发触发限流
- 日志脱敏:不打印 key/secret
- 异常监控:监控 401、429、500 错误
九、总结
item_get_app 是抖音生态中最稳定、最常用的商品详情接口,Java 接入非常简单:
- 传入商品 ID
- 携带 key/secret
- 发送请求 → 解析数据
- 即可快速实现:商品采集、价格监控、选品分析、订单回填、商城展示等功能。
如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。

