《微博开放平台官方CLI开源了:60+API一行搞定,AI Agent原生支持》

315 阅读6分钟

环境要求: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 套餐说明

方案额度价格
Free5 次/小时,仅本人数据免费
Basic3,000 Credits¥29 / 月
Plus7,500 Credits¥69 / 月
Pro32,000 Credits¥299 / 月
Ultra100,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

参数说明

参数类型必填默认值说明
--qstring检索关键词,不能含 {}" 等特殊字符
--typeint获取类型:1 微博、2 评论、3 私信
--countint10返回条数,最小 10,最大 50
--sortstringtimetime 时间倒序 / hot 热门度 / fwnum 转发数 / cmtnum 评论数
--outputstringtablejson / 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