ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Chatlog Alpha HTTP API 参考手册:会话、搜索、朋友圈与数据库接口

Chatlog Alpha HTTP API 参考手册:会话、搜索、朋友圈与数据库接口
  • 后端
  • CLI
  • MCP 服务
  • 即时通讯
  • RAG
  • 人工智能
  • AI 技能

【免费下载链接】chatlog_alpha

原 [chatlog]项目(一个微信数据库解密读取及提供mcp服务、http服务的开源软件),现已支持通过微信clawbot接口推送消息,可以实时转发全部或指定消息到clawbot

项目地址:https://gitcode.com/gh_mirrors/ch/chatlog_alpha
点击查看免费下载

Chatlog Alpha(chatlog_alpha)是一款微信数据库解密读取工具,内置 HTTP API 服务:在 TUI 中执行"启动 HTTP 服务"后,浏览器或脚本即可通过http://127.0.0.1:5030查询会话、历史消息、朋友圈、联系人,甚至直接执行只读 SQL。本手册按功能分类,给出全部核心 HTTP API 的接口地址、参数与调用示例,帮你把本地微信数据变成可编程的数据源。

一、启动服务与基础约定

在 TUI 中完成密钥提取与数据解密后,选择"启动 HTTP 服务",默认监听0.0.0.0:5030(定义于 internal/chatlog/conf/server.go)。本机访问地址:

http://127.0.0.1:5030/

💡 若不希望局域网访问,可在配置中将监听地址改为127.0.0.1:5030。

两个全局约定:

  • 输出格式:绝大多数/api/v1/*接口默认返回 YAML,追加format=json参数即返回 JSON(格式处理见 internal/chatlog/http/route.go 的writeByFormat)。
  • 时间参数:time参数支持以下写法(解析逻辑见 pkg/util/time.go):
写法含义
all全部历史
last-7d/last-30d/last-3m/last-1y近 N 天 / 周 / 月 / 年
2024-01-01~2024-01-31指定日期区间(分隔符也支持,与to)

也可用since/until传入 Unix 时间戳代替time。

二、接口总览

完整路由注册见 internal/chatlog/http/route.go 的initRouter:

类别接口
健康检查GET /health、GET /api/v1/ping
会话与消息GET /api/v1/sessions、GET /api/v1/history、GET /api/v1/search、GET /api/v1/unread、GET /api/v1/new_messages、GET /api/v1/stats
联系人与群聊GET /api/v1/contacts、GET /api/v1/chatrooms、GET /api/v1/members
收藏GET /api/v1/favorites
朋友圈GET /api/v1/sns_feed、GET /api/v1/sns_search、GET /api/v1/sns_notifications
数据库GET /api/v1/db、GET /api/v1/db/search、GET /api/v1/db/tables、GET /api/v1/db/data、GET /api/v1/db/query
媒体资源GET /image/{key}、GET /video/{key}、GET /file/{key}、GET /voice/{key}、GET /data/{path}
语义检索GET /api/v1/semantic/*(可选模块)
时间知识图谱GET /api/v1/graph/*(可选模块)
关键词推送GET/POST /api/v1/hook/*
MCP 服务ANY /mcp、ANY /sse、ANY /message

三、会话与历史消息接口

1. 会话列表:GET /api/v1/sessions

获取最近会话列表,chat字段为显示名,username是后续接口需要的会话 ID。

参数说明
query按会话名模糊过滤(可选)
limit返回条数,默认 20
curl "http://127.0.0.1:5030/api/v1/sessions?limit=10&format=json"

每条记录包含chat、username、is_group、chat_type(private/group)、summary(最后一条消息摘要)、timestamp等字段。

2. 历史消息:GET /api/v1/history

查询单个会话的历史记录,chat为必填参数。

参数说明
chat必填,会话 ID 或名称(群以@chatroom结尾)
time/since/until时间范围,见"基础约定"
msg_type按消息类型过滤(0 为不限,如 1=文本、3=图片)
sub_type按子类型过滤(可选)
hour只取某个小时段(0–23)
is_self只看自己发的 / 只看收到的
has_media只看含媒体的消息
limit/offset分页,limit 默认 50
curl "http://127.0.0.1:5030/api/v1/history?chat=wangwx&time=last-7d&limit=50&format=json"

返回体除消息数组外,还带chat、user_name、total_count等元信息;媒体消息会附带可直接访问的/image/...等链接。

3. 关键词搜索:GET /api/v1/search

跨会话搜索消息内容(区别于下面 db/search 的跨库搜索)。

参数说明
keyword必填,搜索关键词
chats限定会话列表,逗号分隔;不传则搜索最近 300 个会话
msg_type类型过滤(可选)
time/since/until时间范围
limit/offset分页,limit 默认 20
curl "http://127.0.0.1:5030/api/v1/search?keyword=发票&time=last-30d&format=json"

4. 未读与增量消息:unread/new_messages

  • GET /api/v1/unread?limit=20&filter=group:按unread_count > 0返回未读会话,filter可取private、group、official、folded。
  • GET /api/v1/new_messages?limit=200:配合state参数(各会话上次时间戳的 JSON)实现增量拉取,响应中的new_state供下次请求使用——适合写轮询脚本。

5. 会话统计:GET /api/v1/stats

按会话聚合统计:总条数、收发比例、活跃天数、24 小时分布、群聊 Top10 发言人。

curl "http://127.0.0.1:5030/api/v1/stats?chat=项目群@chatroom&time=last-30d&format=json"

四、联系人与群聊接口

接口用途主要参数
GET /api/v1/contacts联系人列表query(模糊)、is_friend(true/false)、limit(默认 500)、offset
GET /api/v1/chatrooms群聊列表query、limit、offset
GET /api/v1/members群成员列表chat(必填),返回username、display、is_owner
# 列出群成员并定位群主 curl "http://127.0.0.1:5030/api/v1/members?chat=1234567890@chatroom&format=json"

另有GET /api/v1/favorites?limit=50&fav_type=2&query=关键词可查询收藏(文本/图片/文章/名片/视频,fav_type分别为 1/2/5/19/20)。

五、朋友圈接口

朋友圈数据来自sns.db,共三个接口:

接口用途
GET /api/v1/sns_feed朋友圈时间线
GET /api/v1/sns_search按文案关键词搜索朋友圈
GET /api/v1/sns_notifications点赞与评论通知

参数说明:

  • sns_feed:limit(默认 20)、user(按作者名/昵称过滤)、time(时间范围)。
  • sns_search:keyword(必填)、user、limit。
  • sns_notifications:limit(默认 50)、include_read=true包含已读。
# 最近 30 天的朋友圈动态 curl "http://127.0.0.1:5030/api/v1/sns_feed?limit=20&time=last-30d&format=json" # 搜索包含"团建"的朋友圈 curl "http://127.0.0.1:5030/api/v1/sns_search?keyword=团建&format=json"

朋友圈条目包含timestamp、username(作者)、content(文案)、location、media_list(图片/视频地址)与article(图文)字段,media_list中的地址可直接在浏览器打开。

六、数据库浏览与 SQL 查询接口

这一组接口让你像浏览普通 SQLite 库一样操作解密后的微信数据库。数据库按业务分组(group),如message、session、sns、favorite。

1. 列出数据库:GET /api/v1/db

返回所有已解密数据库文件的分组清单,是后续接口的"目录"。

2. 跨库全局搜索:GET /api/v1/db/search

参数说明
keyword必填
modequick(默认,快)或deep(逐字段深搜,更慢更全)
limit默认 100,上限 500

3. 表结构浏览:GET /api/v1/db/tables

curl "http://127.0.0.1:5030/api/v1/db/tables?group=message&file=message_0.db"

group与file均从GET /api/v1/db的结果中取得。

4. 表数据分页 / 导出:GET /api/v1/db/data

参数说明
group/file/table定位到具体表(必填)
keyword行内模糊过滤(可选)
limit/offset分页,limit 默认 20
formatcsv或xlsx时直接下载导出文件(自动取全部匹配行)

5. 只读 SQL:GET /api/v1/db/query

对指定库执行 SQL 查询,这是最灵活的接口:

curl -G "http://127.0.0.1:5030/api/v1/db/query" \ --data-urlencode "group=message" \ --data-urlencode "file=message_0.db" \ --data-urlencode "sql=SELECT count(*) AS total FROM MSG"

同样支持format=csv/format=xlsx导出查询结果。

⚠️ 接口面向本地数据浏览设计,请只执行SELECT类只读语句,并妥善保管解密后的数据库与密钥文件(all_keys.json以 0600 权限写入)。

七、媒体资源访问

历史消息中的媒体 key 可直接拼接为下载地址(路由定义见 internal/chatlog/http/route.go 的initMediaRouter):

类型路径
图片GET /image/{md5或path}
视频GET /video/{key}
文件GET /file/{key}
语音GET /voice/{key}
原始数据GET /data/{path}

例如/api/v1/history返回的图片消息带md5字段后,浏览器访问http://127.0.0.1:5030/image/<md5>即可看到原图。

八、用 CLI 调用 HTTP API

不想开浏览器?项目内置 HTTP CLI,接口别名一览见 skills/chatlog-http-cli/SKILL.md:

# 查看所有可调用接口 chatlog http list # 查询会话历史(等价于 GET /api/v1/history) chatlog http call --endpoint history \ --query chat=项目群 --query limit=100 --query format=json # 跨库深度搜索 chatlog http call --endpoint db/search \ --query keyword=项目 --query mode=deep --query limit=100 # 只读 SQL 查询 chatlog http call --path /api/v1/db/query \ --query group=message --query file=message_0.db \ --query 'sql=SELECT count(*) AS total FROM MSG'

--endpoint使用别名,--path可直接指定原始路径,--query key=value可重复传入多个参数,另有--addr(默认127.0.0.1:5030)、--timeout、--output等常用开关。

九、进阶能力速览

除核心查询外,服务还内置若干可选模块(路由均在 internal/chatlog/http/route.go 中注册):

  • 语义检索/api/v1/semantic/*:向量检索、RAG 问答(支持 SSE 流式)、主题/画像分析、索引重建;
  • 时间知识图谱/api/v1/graph/*:时间线、可视化与图谱问答;
  • 消息推送/api/v1/hook/*:配置关键词与转发范围后,可把全部或指定消息实时推送到 clawbot(Hermes Weixin / QQ);
  • 发信调试/api/v1/send-debug/*:仅接受本机回环请求的 macOS 文本/图片发送调试链路;
  • MCP 服务:/mcp、/sse、/message三个入口,可直接接入 Hermes 等 MCP 客户端,并提供wx_semantic_search等工具。

十、常见参数速查表

参数出现位置取值
chathistory / members / stats会话 ID 或名称,群以@chatroom结尾
keywordsearch / sns_search / db/search / db/data搜索词,必填
time多数查询接口all、last-7d、日期区间
limit/offset分页接口正整数,默认值随接口不同
format所有接口缺省 YAML,json/csv/xlsx按需切换
filterunreadprivate、group、official、folded

📌 排障提示:接口返回数据库相关错误时,先确认 TUI 已完成"解密数据"步骤;页面打不开时检查5030端口占用情况。

掌握以上接口后,你就可以用脚本自动汇总群消息、归档朋友圈、批量导出数据库,甚至接入 MCP 让 AI 直接检索你的微信数据。接口路由实现集中在 internal/chatlog/http/route.go 与 internal/chatlog/http/service.go,需要深入了解某个接口的返回结构时,可直接对照源码阅读。

  • 后端
  • CLI
  • MCP 服务
  • 即时通讯
  • RAG
  • 人工智能
  • AI 技能

【免费下载链接】chatlog_alpha

原 [chatlog]项目(一个微信数据库解密读取及提供mcp服务、http服务的开源软件),现已支持通过微信clawbot接口推送消息,可以实时转发全部或指定消息到clawbot

项目地址:https://gitcode.com/gh_mirrors/ch/chatlog_alpha
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进