ThinkPHP对接小红书开放平台需完成OAuth 2.0授权、Token管理、多媒体上传及API调用;核心步骤包括企业资质认证、权限申请、授权码流程实现、笔记发布(先上传再提交)、数据拉取与存储。

ThinkPHP 对接小红书开放平台,核心在于两个动作:一是调用笔记发布接口完成内容自动分发,二是调用数据分析类接口(如笔记详情、评论、用户画像)支撑运营决策。官方不提供 PHP SDK,但可通过标准 OAuth 2.0 流程 + RESTful API 实现稳定对接。关键不在“能不能”,而在“权限怎么拿、Token 怎么管、数据怎么用”。
一、先搞定开发者资质与接口权限
没认证就无法调用任何生产级接口。必须走完三步:
- 登录小红书开放平台,用企业主体注册开发者账号(个体工商户或公司均可,需营业执照)
- 创建应用时,“应用类型”选“服务端应用”,回调域名填你 ThinkPHP 后端的正式域名(如
https://api.yoursite.com),不可用 localhost 或 IP - 在“API 权限申请”中勾选:笔记发布(/api/v1/note/publish)、笔记详情(/api/v1/note/detail)、笔记评论(/api/v1/note/comments)、用户信息(/api/v1/user/profile)——注意:笔记发布权限审核更严,需说明具体使用场景(如“品牌自营账号内容批量同步”)
二、ThinkPHP8 中实现 OAuth 授权与 Token 管理
小红书采用标准 OAuth 2.0,但不支持隐式授权(implicit),只允许授权码模式(authorization code)。你需要在 ThinkPHP 中构建完整流程:
- 前端跳转到小红书授权页:
https://www.xiaohongshu.com/oauth/authorize?client_id=xxx&redirect_uri=https%3A%2F%2Fapi.yoursite.com%2Fauth%2Fcallback&response_type=code&scope=user_info+note_publish - 后端接收
code,用client_id、client_secret和redirect_uri向https://www.xiaohongshu.com/oauth/token换取access_token和refresh_token - 将
access_token(2 小时过期)与refresh_token(7 天有效)存入 Redis,Key 建议为xhs:token:{user_id},并设置自动刷新逻辑(请求前校验 TTL,不足 30 分钟则静默刷新)
三、发布笔记:ThinkPHP 封装 POST 请求
笔记发布需携带图文/视频资源、标题、话题、定位等字段,且图片/视频必须先上传至小红书临时 CDN(非直接传本地路径):
立即学习“PHP免费学习笔记(深入)”;
- 第一步:调用
/api/v1/upload/image或/api/v1/upload/video,上传文件二进制流,获取返回的file_id(如img_xxx.jpg) - 第二步:构造发布体,示例(ThinkPHP8 使用
think\Http或 cURL):
$data = [
'title' => '夏日防晒实测|这5款SPF50+真的不闷痘',
'content' => '?上海实测|油皮亲测3天无泛油…#防晒 #油皮护肤 #夏日必备',
'images' => ['img_abc123.jpg', 'img_def456.jpg'],
'location' => '上海市徐汇区',
'topics' => ['#防晒', '#油皮护肤']
];
- 第三步:POST 到
https://www.php.cn/link/1bc95b50343fa934287cf5dd8addca17/api/v1/note/publish,Header 必须含:Authorization: Bearer {access_token},Content-Type: application/json - 成功返回
{"note_id": "65a1b2c3d4e5f67890123456"},即可用于后续追踪
四、拉取笔记数据:从单篇分析到趋势看板
数据分析不是“查一次”,而是建立定时任务持续采集,ThinkPHP 可结合 think\console\Command + Linux crontab 实现:
- 用
/api/v1/note/detail?note_id=xxx获取单篇曝光、点击、完读率、互动数(点赞/收藏/评论/分享) - 用
/api/v1/note/comments?note_id=xxx&page=1&page_size=20拉取热评,做情感关键词提取(可接轻量 NLP 模型) - 用
/api/v1/user/profile?user_id=xxx补全作者地域、性别、粉丝量,辅助判断内容受众匹配度 - 所有数据统一写入 MySQL 的
xhs_note_analytics表,字段建议含:note_id、fetch_time、exposure、clicks、likes、comments_count、avg_read_duration
对接本身不复杂,难点在权限闭环、Token 生命周期管理、多媒体上传链路和数据归因逻辑。只要把 OAuth 流程跑通、Token 存稳、上传路径对齐,剩下的就是标准 HTTP 调用与业务建模。



















