环境要求:Node.js 18+ · 支持 macOS / Linux / Windows 工具地址:open.weibo.com/cli
背景
调用微博开放接口的常规做法是手写 HTTP 客户端:维护 OAuth token 刷新逻辑、处理分页、实现错误重试,鉴权与基础设施代码通常占整个脚本的 70% 以上,业务逻辑反而是少数。
微博开放平台发布的官方 CLI 工具 weibo-cli 将上述基础设施内置,把微博开放平台的能力封装成可直接执行的终端命令,并作为 AI Agent 的原生调用入口。
核心能力:覆盖发布、互动、检索、趋势分析等 60+ 个接口;支持 JSON / Table 输出;可作为 MCP 工具直接集成进 Agent 工作流。
一、安装与鉴权
1.1 安装
<BASH>
# npm 全局安装
npm install -g @weibo-ai/weibo-cli
# 或使用官方安装脚本(建议先下载审查再执行)
curl -fsSL https://open.weibo.com/cli/install.sh -o install.sh && bash install.sh
# 确认安装版本
weibo-cli version
1.2 前置条件
调用接口前需在微博开放平台完成以下步骤(顺序不可颠倒):
| 步骤 | 操作 | 说明 |
|---|---|---|
| 1 | 开发者实名认证 | 在「基本信息」页提交认证,未通过无法创建授权 |
| 2 | 开通套餐或试用 | 在「套餐订阅」页选择方案,获取额度与积分 |
| 3 | 绑定本机设备 | 在「设备授权」创建授权后执行登录命令 |
状态检查:
<BASH>
weibo-cli doctor # 逐项检查认证与套餐状态
weibo-cli me --output table # 查看当前账号、余额与套餐信息
1.3 登录
<BASH>
# 桌面环境(浏览器 OAuth)
weibo-cli auth login
# 无头环境(SSH / Docker / CI)
weibo-cli auth login --device
登录后可用 weibo-cli auth whoami --output json 验证当前登录状态。
1.4 套餐说明
| 方案 | 额度 | 价格 |
|---|---|---|
| Free | 5 次/小时,仅本人数据 | 免费 |
| Basic | 3,000 Credits | ¥29 / 月 |
| Plus | 7,500 Credits | ¥69 / 月 |
| Pro | 32,000 Credits | ¥299 / 月 |
| Ultra | 100,000 Credits | ¥899 / 月 |
二、命令体系概览
<BASH>
# 列出当前套餐下可用的全部命令
weibo-cli commands list --available
# 查看某条命令的参数、必填字段和适用套餐
weibo-cli commands show search statuses/limited
CLI 覆盖九个能力模块:
| 模块 | 典型命令 | 说明 |
|---|---|---|
| 内容发布 | statuses update · statuses upload | 文字微博、图片微博发布 |
| 内容读取 | statuses user_timeline/other · statuses show_batch/biz | 用户时间线、批量获取微博 |
| 互动管理 | comments to_me/biz · comments reply | 评论读取与回复 |
| 内容检索 | search statuses/limited | 关键词、话题微博搜索 |
| 趋势分析 | search hot_word/biz · search hot_word_cate/biz | 热搜主榜、分类榜单 |
| 粉丝画像 | friendships followers/biz · friendships followers/age_group_count | 粉丝列表与行为分析 |
| 用户信息 | users show/biz · users show_batch/other | 当前用户及批量查询 |
| 表态 | attitudes create · attitudes show/biz | 点赞与赞列表 |
| 影视榜单 | wbindex ranking/tvHot · wbindex ranking/showHot | 剧集、综艺热播/待播榜 |
三、典型命令详解
3.1 关键词内容检索
适用场景:竞品选题分析、赛道热度排查。
<BASH>
weibo-cli search statuses/limited \
--q "防晒霜" \
--type 1 \
--sort hot \
--count 20 \
--output json > result.json
参数说明:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
--q | string | ✅ | — | 检索关键词,不能含 {、}、" 等特殊字符 |
--type | int | ✅ | — | 获取类型:1 微博、2 评论、3 私信 |
--count | int | ❌ | 10 | 返回条数,最小 10,最大 50 |
--sort | string | ❌ | time | time 时间倒序 / hot 热门度 / fwnum 转发数 / cmtnum 评论数 |
--output | string | ❌ | table | json / table |
输出示例(--output json):
<JSON>
{
"total_number": "140473",
"statuses": [
{
"id": 5316534266232939,
"text": "用了3年防晒,总结出这套懒人公式",
"attitudes_count": 5590215,
"comments_count": 12300,
"reposts_count": 8800,
"user": {
"id": 1234567890,
"screen_name": "护肤研究员小林",
"followers_count": 280000
}
}
]
}
3.2 实时热搜趋势
<BASH>
weibo-cli search hot_word/biz --output json
输出为结构化对象,data 数组包含 id(排名)、word(热搜词)、num(热度值)字段,可直接管道至 python3 做二次过滤。
<BASH>
# 筛选包含指定关键词的热搜条目
weibo-cli search hot_word/biz --output json | python3 -c "
import sys, json
data = json.load(sys.stdin)['data']
for item in data:
if '护肤' in item['word']:
print(f"{item['id']}. {item['word']} 热度:{item['num']}")
"
四、AI Agent 集成
weibo-cli 的所有命令均为机器可调用的结构化接口,可在用户授权范围内直接嵌入 Agent 工作流,无需额外封装 API Wrapper。
适用场景
- 定时抓取指定话题热度,触发内容策略更新
- 基于热搜关键词自动检索微博并生成摘要报告
- 按评论情感分级,批量标记待回复内容
完整示例:热点监控 + 自动报告生成
<BASH>
# Step 1:获取护肤相关热搜词
weibo-cli search hot_word/biz --output json | python3 -c "
import sys, json
data = json.load(sys.stdin)['data']
matches = [x for x in data if '护肤' in x['word']]
if matches:
print(matches[0]['word'])
" > trending_keyword.txt
# Step 2:基于热搜词批量检索微博
KEYWORD=$(cat trending_keyword.txt)
weibo-cli search statuses/limited \
--q "$KEYWORD" \
--type 1 \
--sort hot \
--count 30 \
--output json > statuses.json
# Step 3:输出至 LLM 生成报告(接 Claude / GPT 均可)
cat statuses.json | llm-cli summarize \
--prompt "分析以上微博的内容分布与互动趋势,输出今日护肤赛道热点摘要"
安全说明:涉及发文、评论等写操作时,建议在 Agent 工作流中保留人工确认节点,避免指令误解导致非预期执行。凭证(access token)不应提交至版本控制或出现在公开日志中。如怀疑泄露,在控制台「我的信息」→「授权列表」中撤销对应会话。
五、实战场景
场景一:话题热度监控告警
每小时检测指定关键词是否进入热搜榜,达到阈值后触发通知。
<BASH>
#!/bin/bash
# monitor_topic.sh
KEYWORD="AI工具"
THRESHOLD=50000
HEAT=$(weibo-cli search hot_word/biz --output json | python3 -c "
import sys, json
data = json.load(sys.stdin)['data']
kw = '$KEYWORD'
matches = [x for x in data if kw in x['word']]
print(matches[0]['num'] if matches else '0')
")
if [ "$HEAT" -gt "$THRESHOLD" ]; then
curl -s -X POST "$FEISHU_WEBHOOK" \
-H "Content-Type: application/json" \
-d "{"text": "[告警] $KEYWORD 当前热度 $HEAT,已超过阈值 $THRESHOLD"}"
fi
加入 crontab 定时执行:
<BASH>
0 * * * * /path/to/monitor_topic.sh
场景二:竞品账号内容采集
拉取指定账号近期微博,导出 JSON 供后续分析。
<BASH>
# 通过昵称获取目标账号 UID
weibo-cli users show_batch/other \
--screen_name "目标账号昵称" \
--output json > target_user.json
USER_ID=$(python3 -c "
import json
users = json.load(open('target_user.json'))['users']
print(users[0]['id']) if users else exit(1)
")
# 拉取最新 50 条微博
weibo-cli statuses user_timeline/other \
--uid "$USER_ID" \
--count 50 \
--output json > timeline.json
echo "采集完成,共 $(python3 -c "import json; print(len(json.load(open('timeline.json'))['statuses']))" ) 条记录"
场景三:评论分流自动回复
过滤含特定关键词的评论,进行统一回复处理。
<BASH>
# 拉取最新 100 条收到的评论
weibo-cli comments to_me/biz \
--count 100 \
--output json > comments.json
# 筛选含咨询意图的评论(python 替代 jq)
python3 -c "
import json, re
comments = json.load(open('comments.json'))['comments']
pattern = re.compile(r'多少钱|在哪买|怎么买|链接')
inquiry = [c for c in comments if pattern.search(c.get('text', ''))]
print(f'筛选出 {len(inquiry)} 条咨询类评论')
with open('inquiry.json', 'w') as f:
json.dump(inquiry, f, ensure_ascii=False, indent=2)
"
# 批量回复(执行前建议先确认 inquiry.json 内容)
python3 -c "
import json, subprocess
inquiry = json.load(open('inquiry.json'))
for c in inquiry:
# 需要同时提供微博 ID (--id) 和评论 ID (--cid)
mid = c['rootidstr'] # 被评论的微博 ID
cid = c['idstr'] # 评论 ID
subprocess.run([
'weibo-cli', 'comments', 'reply',
'--id', mid,
'--cid', cid,
'--comment', '感谢咨询,详情可私信了解~'
])
"
注意:
comments reply需同时传--id(微博 ID)和--cid(评论 ID),批量执行前务必 dry-run 确认数据正确。
六、小结
weibo-cli 的核心价值在于将接口调用的基础设施成本转移到工具层,开发者只需关注业务逻辑本身。AI Agent 原生支持是其区别于同类工具的关键特性,适合需要将微博运营动作编排进自动化工作流的场景。
使用前需完成开发者认证和套餐开通,个人测试可从 Free 方案起步,weibo-cli doctor 可快速定位配置问题。
参考链接
- 官方文档:
https://open.weibo.com/cli/index - 使用手册:
https://open.weibo.com/cli/quickstart