小红书笔记详情API接口基础解析:数据结构与调用方式

小红书笔记详情API接口基础解析:数据结构与调用方式

小红书笔记详情 API 接口基础解析:数据结构与调用方式

小红书笔记详情 API 是面向官方合作方 / 授权开发者提供笔记核心数据的标准化接口,主要用于合规场景下的内容展示、数据分析(需授权)等需求。该接口的设计围绕数据标准化、权限管控、内容合规三大核心,其数据结构与调用方式具有鲜明的内容社区属性。

一、接口基础信息

1. 接口访问前提

  • 权限限制:小红书笔记详情 API不对外开放,仅对通过企业资质审核的合作方(如品牌服务商、合规内容平台)开放,个人开发者无法申请。
  • 调用协议:支持 HTTPS 协议,保障数据传输安全;高并发场景可申请 gRPC 协议支持。
  • 请求方式:以 GET 为主(只读查询),部分带用户个性化参数的请求支持 POST
  • 数据格式:默认返回 JSON 格式,支持 Protobuf 二进制格式(需申请开通,传输效率更高)。

2. 核心鉴权方式

小红书 API 采用双重鉴权机制,防止非法调用:

  1. 基础鉴权AppKey + AppSecret 签名机制
    • 开发者通过官方平台获取 AppKey(应用标识)和 AppSecret(密钥)。
    • 请求时需对参数按规则排序,通过 HMAC-SHA256 算法生成签名(sign 参数),服务端校验签名有效性。
    • 签名参数必须包含 timestamp(时间戳),且时间戳与服务器时间偏差不超过 ±5 分钟,防止重放攻击。
  2. 用户级鉴权OAuth2.0 令牌机制
    • 若需获取笔记的个性化数据(如用户是否点赞、收藏该笔记),需通过用户授权获取 access_token,并在请求头中携带。

二、核心数据结构

小红书笔记详情 API 返回的数据结构包含基础信息、内容信息、互动信息、作者信息四大模块,字段设计兼顾内容展示与合规要求。以下是标准化的 JSON 数据结构示例及字段说明:

json

{ "code": 0, "msg": "success", "data": { "note_id": "648a7b2f0000000012345678", // 笔记唯一标识 "title": "夏日清爽穿搭指南 | 平价T恤分享", // 笔记标题 "desc": "这几件T恤真的巨舒服!均价50r,学生党冲...", // 笔记短描述 "content": "<p>哈喽姐妹们👋 今天给大家分享...</p>", // 富文本详情(HTML格式) "create_time": 1719984000, // 发布时间(时间戳) "update_time": 1719985200, // 最后更新时间 "note_type": "normal", // 笔记类型:normal-普通笔记/video-视频笔记/live-直播回放 "category": "fashion", // 内容分类:fashion-时尚/food-美食/beauty-美妆等 "tags": ["夏日穿搭", "平价T恤", "学生党"], // 笔记标签 "media": { // 媒体资源 "images": [ // 图片列表(图文笔记) "https://xxx.xiaohongshu.com/xxx/1.jpg", "https://xxx.xiaohongshu.com/xxx/2.jpg" ], "video": { // 视频信息(视频笔记) "play_url": "https://xxx.xiaohongshu.com/xxx/video.mp4", "cover_url": "https://xxx.xiaohongshu.com/xxx/cover.jpg", "duration": 15.5 // 视频时长(秒) } }, "author": { // 作者信息(脱敏处理) "user_id": "12345678", // 作者ID "nickname": "穿搭小能手", // 作者昵称 "avatar": "https://xxx.xiaohongshu.com/xxx/avatar.jpg", // 头像 "level": 5, // 作者等级 "is_verified": true // 是否为认证用户 }, "interaction": { // 互动数据 "like_count": 12580, // 点赞数 "collect_count": 3620, // 收藏数 "comment_count": 890, // 评论数 "share_count": 120 // 分享数 }, "location": { // 地理信息(可选) "name": "上海市徐汇区", "latitude": 31.197, "longitude": 121.436 }, "status": "published", // 笔记状态:published-已发布/draft-草稿/deleted-已删除 "is_commercial": false // 是否为商业笔记 } } 

关键字段说明

模块核心字段字段用途
基础信息note_id、title笔记唯一标识与核心标题,用于内容定位
内容信息content、media笔记正文(富文本)与媒体资源(图片 / 视频),是内容展示的核心
作者信息author(脱敏)仅返回公开信息,隐藏手机号、精确地址等隐私数据
互动信息like_count 等反映笔记热度,用于数据分析与内容推荐
合规字段is_commercial、status标识商业笔记与内容状态,防止违规内容传播

三、接口调用方式

1. 标准请求示例

(1)请求 URL

plaintext

https://openapi.xiaohongshu.com/v2/note/detail 
(2)请求参数

分为公共参数(所有接口必填)和业务参数(当前接口必填):

参数类型参数名说明
公共参数app_key应用唯一标识(官方分配)
公共参数sign签名值(通过 AppSecret 生成)
公共参数timestamp当前时间戳(秒级)
公共参数access_token用户授权令牌(非必填,仅个性化查询需要)
业务参数note_id笔记 ID(必填,需查询的笔记唯一标识)
(3)请求头示例

plaintext

Headers: { "Content-Type": "application/json", "User-Agent": "Xiaohongshu-OpenAPI-SDK/1.0.0" } 
(4)签名生成逻辑(Python 伪代码)

python

运行

import hashlib import hmac import time def generate_sign(app_secret, params): # 1. 按参数名ASCII升序排序 sorted_params = sorted(params.items(), key=lambda x: x[0]) # 2. 拼接为key=value格式的字符串 sign_str = "&".join([f"{k}={v}" for k, v in sorted_params]) # 3. 拼接AppSecret并生成HMAC-SHA256签名 sign = hmac.new(app_secret.encode("utf-8"), sign_str.encode("utf-8"), hashlib.sha256).hexdigest() return sign # 调用示例 params = { "app_key": "your_app_key", "note_id": "648a7b2f0000000012345678", "timestamp": str(int(time.time())) } sign = generate_sign("your_app_secret", params) params["sign"] = sign 

2. 响应处理

(1)成功响应

返回 code=0data 字段包含完整的笔记详情数据,示例见上文数据结构部分。

(2)常见错误响应
错误码错误信息原因分析与解决方案
1001app_key invalidAppKey 无效,检查是否为官方分配的有效密钥
1002sign verify failed签名错误,检查签名算法、参数排序是否正确
1003request frequency limit调用频率超限,降低请求 QPS 或申请提升限额
2001note_id invalid笔记 ID 不存在或已被删除
2002permission denied无权限访问该笔记(如私密笔记)

四、接口调用限制与合规要求

  1. 频率限制
    • AppKey日调用限额秒级 QPS 限制(如基础版 1000 次 / 日、10QPS),超出限制返回 1003 错误。
    • 禁止批量抓取笔记数据,仅允许按需查询单条笔记详情。
  2. 数据用途限制
    • 调用所得数据仅允许用于合作场景内的展示,禁止用于爬虫、竞品分析、数据贩卖等违规用途。
    • 引用笔记内容时需注明 “来源小红书”,并遵守平台版权规则。
  3. 隐私合规
    • 不得存储或传播作者的脱敏信息,不得通过接口数据反向识别用户身份。

是否需要我为你整理小红书笔记详情 API 的 Python 调用完整代码,或者补充不同笔记类型(图文 / 视频)的数据结构差异说明

Read more

35道常见的前端vue面试题,零基础入门到精通,收藏这篇就够了

35道常见的前端vue面试题,零基础入门到精通,收藏这篇就够了

来源 | https://segmentfault.com/a/1190000021936876 今天这篇文章给大家分享一些常见的前端vue面试题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 对于前端来说,尽管css、html、js是主要的基础知识,但是随着技术的不断发展,出现了很多优秀的mv*框架以及小程序框架。因此,对于前端开发者而言,需要对一些前端框架进行熟练掌握。这篇文章我们一起来聊一聊VUE及全家桶的常见面试问题。 1、请讲述下VUE的MVVM的理解? MVVM 是 Model-View-ViewModel的缩写,即将数据模型与数据表现层通过数据驱动进行分离,从而只需要关系数据模型的开发,而不需要考虑页面的表现,具体说来如下: Model代表数据模型:主要用于定义数据和操作的业务逻辑。 View代表页面展示组件(即dom展现形式):负责将数据模型转化成UI 展现出来。 ViewModel为model和view之间的桥梁:监听模型数据的改变和控制视图行为、处理用户交互。通过双向数据绑定把 View 层和 Model 层连接了起来,而View

By Ne0inhk

前端大文件分片上传实现与断点续传方案(含完整代码讲解)

在上传大文件(如视频、安装包、模型文件)时,直接上传容易出现以下问题: * 文件过大 → 浏览器/服务器容易超时 * 上传过程中断 → 重新上传浪费时间 * 网络波动 → 上传失败率高 因此,大文件分片上传 + 断点续传 + 秒传校验 是目前最通用、最稳定的解决方案。 本文将通过一段完整可运行的示例代码,详细讲解如何在前端实现分片上传、断点续传、服务端校验等关键功能。 ✨ 实现效果 * ✔ 自动切片(默认 5MB/片,可配置) * ✔ 查询已上传分片(断点续传) * ✔ 自动跳过已上传的片段 * ✔ 每片上传成功后重新校验 * ✔ 所有片段上传完成后自动触发合并 * ✔ 错误处理完善 📌 核心代码(uploadLargeFile) 以下代码就是本文的核心逻辑,也是你提供的代码版本,经过梳理解释后会更易理解: export async function uploadLargeFile({ file, fileId, id, chunkSize = 5 * 1024

By Ne0inhk
【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦

【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦

目录 【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦 一、为什么要做全局错误处理? 1、将业务逻辑与错误处理解耦 2、为监控和埋点提供统一入口 二、Vue 中的基础全局错误处理方式 1、Vue 中全局错误处理写法 2、它会捕获哪些错误? 3、它不会捕获哪些错误? 4、errorHandler 的参数含义 三、全局错误处理的进阶设计 1、定义“可识别的业务错误” 2、在 errorHandler 中做真正的“分类处理” 3、补齐 Promise reject 的捕获能力 4、错误处理的策略化封装 四、结语         作者:watermelo37         ZEEKLOG优质创作者、华为云云享专家、阿里云专家博主、腾讯云“

By Ne0inhk
前端小案例——520表白信封

前端小案例——520表白信封

前言:我们在学习完了HTML和CSS之后,就会想着使用这两个东西去做一些小案例,不过又没有什么好的案例让我们去练手,本篇文章就提供里一个案例——520表白信封 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-ZEEKLOG博客 在开始讲解这个案例之前,先让我们了解一下本案例所需的前置知识: HTML 布局:创建合适的 HTML 结构,使用标签如 <input>、<label>、<div>、<img> 和 <h1> 等。CSS 布局与样式:设置卡片的外观、尺寸和基本样式,使用 Flexbox 居中布局。CSS 动画与变换:学习如何使用 transform 创建旋转和位移效果,如何使用 transition 来平滑过渡。HTML 与

By Ne0inhk