微博账号作品回采。输入微博用户主页链接或 uid,调用 Redfox 接口查询该用户最新博文,支持分页浏览。当用户需要查看某用户微博动态、追踪博主最新内容时使用。触发词:查用户博文、用户微博、微博主页、查博主、微博动态。
---
name: weibo-post-search
description: 微博账号作品回采。输入微博用户主页链接或 uid,调用 Redfox 接口查询该用户最新博文,支持分页浏览。当用户需要查看某用户微博动态、追踪博主最新内容时使用。触发词:查用户博文、用户微博、微博主页、查博主、微博动态。
---
# 微博账号作品回采
## 📝 简介
微博用户博文查询工具,输入微博用户主页链接或 uid,即可查询该用户最新博文,支持分页浏览。
## ✨ 功能特性
| 功能模块 | 能力描述 | 核心价值 |
|---------|---------|---------|
| 用户查询 | 输入微博主页链接或 uid 查询博文 | 一键查看任意用户最新动态 |
| 分页浏览 | 支持多页结果浏览 | 逐页探索用户历史博文 |
## 🔑 鉴权
### 获取 API Key
请前往 [红狐hub](https://redfox.hk/settings/api-keys?source=github) 获取 API KEY
### 配置 API Key
方案1: 以 Qoder 为例,将 REDFOX_API_KEY 添加到 `~/.openclaw/openclaw.json` 中:
```bash
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
```
方案2: 终端配置
```bash
export REDFOX_API_KEY="ak_xxxx..."
```
## 🔄 工作流程
### Step 1:理解用户意图,提取 uid
**1. 提取用户 uid**
- 若用户提供了微博主页链接(如 `https://weibo.com/1784473157`),从中提取 uid
- 若用户直接提供了数字 uid,直接使用
- 若用户意图模糊(如"帮我查下微博用户"),主动询问:「请提供微博用户主页链接或 uid」
- 不得在用户未提供 uid 时擅自猜测并调用脚本
**2. 识别页码参数**
- 用户提到"下一页"、"第2页" → 对应页码
- 用户提到"上一页" → 当前页 - 1
- 未提及页码 → 默认第 1 页
### Step 2:调用查询脚本
```bash
python3 ~/.agents/skills/weibo-post-search/scripts/user_work_list.py "<uid或主页链接>" [--page 页码]
```
**参数说明:**
| 参数 | 说明 |
|------|------|
| input | 用户 uid 或微博主页链接(如 `https://weibo.com/1784473157`) |
| `--page` | 页码,从1开始(默认1) |
脚本以 JSON 格式输出:
| 字段 | 说明 |
|------|------|
| `uid` | 用户 uid |
| `user_name` | 用户昵称(取自博文中的 nickname 字段,无昵称时回退为 uid) |
| `articles` | 用户博文列表 |
| `page` | 当前页码 |
| `has_next` | 是否有下一页(true/false) |
每条博文字段:
| 字段 | 说明 |
|------|------|
| `content` | 博文内容 |
| `forward_num` | 转发数 |
| `comment_num` | 评论数 |
| `like_num` | 点赞数 |
| `publish_time` | 发布时间(含时分秒,如 `2025-07-10 14:30:25`) |
| `work_url` | 博文链接(`https://weibo.com/{uid}/{mblogId}`) |
### Step 3:判断结果并展示
#### 情况 A:articles 数量 > 0(有匹配结果)
**A1. 告知用户查询范围**
> 📊 **{user_name}** 查询到 **N 条**博文(第 {page} 页),以下是详细数据:
**A2. 渲染 Markdown 表格(全部展示)**
```markdown
| # | 博文内容 | 转发数 | 评论数 | 点赞数 | 发布时间 |
|---|----------|--------|--------|--------|----------|
| 1 | [博文内容](链接) | 305 | 120 | 1.2w | 2025-07-10 14:30:25 |
```
**数字格式化规则:**
- `< 10000`:原始数字(如 `320`)
- `≥ 10000`:`x.xw` 格式(如 `1.2w`)
**内容规则:** `[博文内容](work_url)`;超过 30 字截断并加 `...`;内容为空时显示 `-`
**A3. 翻页提示(⚠️ 紧接在 A2 之后,不可省略,每次必须输出)**
- 若 `has_next` 为 true:
> 📄 当前第 **{page}** 页。回复「下一页」继续查看。
- 若 `has_next` 为 false(当前页不足 9 条或为空,已是最后一页):
> 📄 当前第 **{page}** 页,已无更多数据。
**⚠️ A1~A3 缺一不可,必须在同一轮输出中连续完成。**
#### 情况 B:articles 数量 = 0(无匹配结果)
**B1. 抱歉提示**
> 😔 **{user_name}** 暂无博文数据,或该用户设置了隐私保护。
don't have the plugin yet? install it then click "run inline in claude" again.