news 2026/7/8 8:05:05

weibo-cli:微博开放平台官方命令行工具使用指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
weibo-cli:微博开放平台官方命令行工具使用指南

环境:Node.js 18+ · macOS / Linux / Windows
npm 包:@weibo-ai/weibo-cli(当前版本 0.8.3)

背景
接入微博开放平台的常规路径是手写 HTTP 客户端——OAuth 鉴权、token 管理、分页、重试这些基础设施代码往往比业务逻辑本身更多。weibo-cli 是微博开放平台官方发布的 CLI 工具,将这些基础设施内置,以命令行的方式直接暴露平台接口,同时也可以作为 MCP Server 接入 AI Agent 工作流。

本文基于实际执行的验证结果,记录安装流程、命令结构和三个可跑通的脚本示例。文中所有命令均经过执行验证,参数和字段以实际输出为准。

一、安装

npm install -g @weibo-ai/weibo-cli
也可以用官方脚本,建议先下载审查再执行,不要直接管道给 bash:

推荐:先下载,确认内容后再执行
curl -fsSL https://open.weibo.com/cli/install.sh -o install.sh
cat install.sh # 检查内容
bash install.sh
确认版本:

weibo-cli version

0.8.3

二、前置条件与鉴权

2.1 开放平台配置
在 open.weibo.com 按顺序完成三步,缺少任何一步都会在 weibo-cli doctor 输出 ×:

步骤 位置 说明
1 基本信息 → 开发者认证 实名认证,未通过无法创建授权
2 套餐订阅 选择方案获取调用额度,有免费档
3 设备授权 绑定本机后执行登录命令

2.2 登录
有桌面环境
weibo-cli auth login
无头环境(SSH / Docker / CI)
weibo-cli auth login --device
–device 会输出一个 URL 和验证码,在任意浏览器中打开完成授权即可,适合服务器场景。

2.3 状态检查

weibo-cli doctor
✓ 登录账号: yourname
✓ 完成开发者认证
✓ 开通套餐: Ultra
weibo-cli me --output table
显示账号、余额、套餐有效期、额度使用情况

2.4 套餐与额度
方案 额度 价格
Free 5 次/小时,仅本人数据 免费
Basic 3,000 Credits/月 ¥29
Plus 7,500 Credits/月 ¥69
Pro 32,000 Credits/月 ¥299
Ultra 100,000 Credits/月 ¥899
个人测试从 Free 起步足够,weibo-cli doctor 可以随时检查当前状态。

三、命令结构

所有命令格式为 weibo-cli [flags]。

# 查看当前套餐下可用命令 weibo-cli commands list --available # 查看某条命令的完整参数 weibo-cli commands show search statuses/limited weibo-cli commands show comments reply 注意事项:

不同套餐可用命令不同,commands list --all 可以看到锁定项
输出格式支持 --output json 和 --output table,不支持 csv
翻页参数统一为 --page,返回条数为 --count(不是 --limit)
当前 Ultra 套餐共 67 个命令,覆盖以下模块:

模块 代表命令
微博内容 statuses update / statuses user_timeline/other / statuses show_batch/biz
评论 comments to_me/biz / comments reply / comments show/all
搜索 search statuses/limited / search hot_word/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

四、常用命令示例

4.1 关键词搜索微博

weibo-cli search statuses/limited
–q “关键词”
–type 1
–sort hot
–count 20
–output json > result.json
关键参数:

参数 必填 说明
–q ✅ 关键词,不能含 { } " 等特殊字符
–type ✅ 1 微博 / 2 评论 / 3 私信
–sort ❌ time(默认)/ hot / fwnum / cmtnum
–count ❌ 10~50,默认 10
返回结构中关键字段:

{ "total_number": "140316", "statuses": [ { "id": 5316534266232939, "text": "微博正文", "attitudes_count": 5592493, "comments_count": 977316, "reposts_count": 1000000, "user": { "id": 1234567890, "screen_name": "用户昵称", "followers_count": 80000000 } } ] }

4.2 热搜榜
weibo-cli search hot_word/biz --output json
返回 data 数组,每条包含 id(排名)、word(词条)、num(热度值)。固定返回 20 条,不支持 --count 参数。

输出热搜排名和热度
weibo-cli search hot_word/biz --output json | python3 -c "
import sys, json
for item in json.load(sys.stdin)[‘data’]:
print(f"{item[‘id’]:>2}. {item[‘word’]} {item[‘num’]}")
"
4.3 获取用户微博时间线

查他人微博,需要 UID
weibo-cli statuses user_timeline/other
–uid 1234567890
–count 50
–output json
查当前登录用户自己的微博
weibo-cli statuses user_timeline/biz
–count 20
–output json
–uid 可通过 users show_batch/other --screen_name 查到:

weibo-cli users show_batch/other
–screen_name “用户昵称”
–output json | python3 -c "
import sys, json
users = json.load(sys.stdin)[‘users’]
if users: print(users[0][‘id’])
"
4.4 读取收到的评论
weibo-cli comments to_me/biz
–count 100
–output json
返回结构中每条评论包含 idstr(评论ID)、text(内容)、rootidstr(所属微博ID)。回复评论时这两个字段都是必填项。

4.5 回复评论
weibo-cli comments reply
–id <微博ID>
–cid <评论ID>
–comment “回复内容”
–id 是被评论的微博ID,–cid 是要回复的评论ID,两者都是必填,来源分别是评论数据中的 rootidstr 和 idstr。

五、脚本示例

示例一:热搜关键词监控
检测某关键词是否出现在热搜榜,超过热度阈值时触发通知。

!/bin/bash
monitor_topic.sh
KEYWORD=“AI工具”
THRESHOLD=50000
FEISHU_WEBHOOK=“https://your-webhook-url”
HEAT=(weibo−clisearchhotword/biz−−outputjson∣python3−c"importsys,jsondata=json.load(sys.stdin)[′data′]kw=′(weibo-cli search hot_word/biz --output json | python3 -c " import sys, json data = json.load(sys.stdin)['data'] kw = '(weiboclisearchhotword/bizoutputjsonpython3c"importsys,jsondata=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"HEAT" -gt "HEAT"gt"THRESHOLD” ]; then
curl -s -X POST “$FEISHU_WEBHOOK”
-H “Content-Type: application/json”
-d “{“text”: “[监控] $KEYWORD 热度 $HEAT,已超过阈值 $THRESHOLD”}”
fi

加入 crontab 每小时执行:

0 * * * * /path/to/monitor_topic.sh

示例二:指定账号时间线采集
拉取指定账号的近期微博并保存为 JSON。

!/bin/bash
fetch_timeline.sh
SCREEN_NAME=“目标账号昵称”
通过昵称查 UID
UID=(weibo−cliusersshowbatch/other −−screenname"(weibo-cli users show_batch/other \ --screen_name "(weibocliusersshowbatch/otherscreenname"SCREEN_NAME"
–output json | python3 -c "
import sys, json
users = json.load(sys.stdin)[‘users’]
print(users[0][‘id’]) if users else exit(1)
")
if [ -z “$UID” ]; then
echo “未找到用户:SCREENNAME"exit1fi拉取最近50条微博weibo−clistatusesusertimeline/other −−uid"SCREEN_NAME" exit 1 fi 拉取最近 50 条微博 weibo-cli statuses user_timeline/other \ --uid "SCREENNAME"exit1fi拉取最近50条微博weiboclistatusesusertimeline/otheruid"UID”
–count 50
–output json > "timeline_UID.json"COUNT={UID}.json" COUNT=UID.json"COUNT=(python3 -c "
import json
print(len(json.load(open(‘timeline_${UID}.json’))[‘statuses’]))
")
echo “已采集KaTeX parse error: Expected group after '_' at position 21: … 条,保存至 timeline_̲{UID}.json”

示例三:评论关键词筛选与批量回复
筛选含特定关键词的评论,批量回复。执行前建议先检查 inquiry.json 的内容,写操作不可撤销。

Step 1:拉取最近 100 条收到的评论
weibo-cli comments to_me/biz
–count 100
–output json > comments.json
Step 2:筛选咨询类评论(python3,Windows/macOS/Linux 均可用)
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’, encoding=‘utf-8’) as f:
json.dump(inquiry, f, ensure_ascii=False, indent=2)
"
Step 3:确认 inquiry.json 内容后执行批量回复
python3 -c "
import json, subprocess
for c in json.load(open(‘inquiry.json’)):
subprocess.run([
‘weibo-cli’, ‘comments’, ‘reply’,
‘–id’, c[‘rootidstr’],
‘–cid’, c[‘idstr’],
‘–comment’, ‘感谢咨询,详情可私信了解’
])
"

六、已知限制

无私信模块:当前版本不支持私信相关操作
无批量发布:statuses update 只支持单条发布,无 batch 接口
热搜固定 20 条:search hot_word/biz 不接受 --count 参数
搜索接口有限速:search statuses/limited 在 Pro 及以上套餐可用,Basic/Plus 套餐受限
输出格式:仅支持 json 和 table,不支持 csv
Windows 环境:weibo-cli 命令在 Git Bash 下存在路径解析问题,建议用 PowerShell 或直接调用 node 执行
参考
官方文档:https://open.weibo.com/cli/index
使用手册:https://open.weibo.com/cli/quickstart
npm 包:https://www.npmjs.com/package/@weibo-ai/weibo-cli

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 8:03:56

上门美甲小程序商城开发全攻略:从0到1打造美业O2O平台

编辑&#xff1a;SJ520it黄华一、项目概述与市场前景上门美甲小程序商城是一种创新的O2O&#xff08;线上到线下&#xff09;美业服务模式。它将传统美甲店的预约、选款、支付等环节线上化&#xff0c;同时结合“技师上门”的服务特色&#xff0c;为用户提供便捷、个性化的美甲…

作者头像 李华
网站建设 2026/7/8 8:01:09

JavaScript 变量声明:var /let/const 完整对比

前端必考点&#xff1a;var、let、const 作用域、变量提升与使用场景前言在 JavaScript 中&#xff0c;var、let、const是三种声明变量的关键字&#xff0c;var为 ES5 旧语法&#xff0c;let、const是 ES6 新增。很多开发新手分不清三者作用域、变量提升、重复声明规则&#xf…

作者头像 李华
网站建设 2026/7/8 7:58:48

3分钟解锁九大网盘:告别下载限速的智能直链神器

3分钟解锁九大网盘&#xff1a;告别下载限速的智能直链神器 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 /…

作者头像 李华
网站建设 2026/7/8 7:58:43

可研PPT制作指南:从框架到呈现,轻松搞定项目论证

想做一份专业的可研PPT却无从下手&#xff1f;本文分享从框架搭建、内容提炼到设计排版的全流程教程&#xff0c;还有AI工具辅助&#xff0c;让你快速搞定项目可行性研究汇报。 引言 做可行性研究报告的PPT&#xff0c;真是让人头大。明明word版的可研报告都写好了&#xff0c;…

作者头像 李华
网站建设 2026/7/8 7:58:10

【单片机毕业设计】基于 STM32/51 单片机的多坑位智能公厕消毒监测控制系统设计与实现,带语音提醒的单片机公厕多工位智能监测设备研发(021801)

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能一、核心管控功能二、环境与时间辅助调控功能三、人机交互与参数配置基础功能四、无线远程拓展功能技术路线项目演示关于我们项目案例源码获取博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项…

作者头像 李华