【开源】WeiLink — 微信 iLink Bot API 的 Python SDK

2026-04-11 15:241阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:

  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


ClawBot 开放后看到佬友们和 GitHub 上搞了不少 Node.js 和 Go 的封装,正好家里人也有相关需求想尝鲜,我自己写 Python 比较多,没找到这个定位的现成 Python 库,自己也感兴趣,就动手做了一个。

GitHub:GitHub - Oaklight/weilink: Lightweight Python SDK for WeChat iLink Bot protocol | 微信 iLink Bot 协议轻量 Python SDK · GitHub
PyPI:pip install weilink
详细文档:https://weilink.readthedocs.io

这个库不带 bot 逻辑,只做消息收发这一件事(login / recv / send)。所以方便各位按照自己的需求接入框架、各种程序、甚至传统的消息推送也是可以的。

核心包没有运行时依赖,只用标准库。当下的发布版本为 0.3.0,支持了微信的各种消息类型(文本、图片、语音、文件、视频),算是基本可用了。

from weilink import WeiLink wl = WeiLink() wl.login() # 终端弹 QR 码 messages = wl.recv() for msg in messages: wl.send(msg.from_user, "收到!")

MCP Server 和 OpenAPI Server 做成了可选依赖(pip install weilink[server]),不装的话核心包不会多出东西。也提供了 Docker 镜像,不想折腾环境可以直接跑。另外附了个 Web 管理面板方便扫码登录和看会话状态。

图片1280×800 24.4 KB

iLink 协议本身有些限制:不能主动发起对话(用户必须先发消息)、24 小时不活跃后消息会被丢弃、腾讯随时可能调整协议。

pip install weilink # 核心包,零依赖 + 管理面板 pip install weilink[server] # 基础版本上,添加MCP + OpenAPI封装

Python 3.10+,MIT。具体的配置和用法写在文档里了,这里就不展开了。有问题欢迎讨论。

网友解答:
--【壹】--:

感谢大佬。


--【贰】--:

我确认过了,目前clawbot的插件启动的对话项目无法在转发列表中进行显示,也就无法转发公众号、名片、小程序之类的东西,这是腾讯那边的限制了。


--【叁】--:

0.4.0有一个migrate功能,上面给你的回复里面贴了相关文档,如果方便的话可以测测看

另外,顶号了其实问题不大,你手机上的记录不会因为顶号而消失,目前默认只会有一个bot的消息记录。


--【肆】--:

我目前对于ilink以及微信端的机制的理解是,如果是想要:多个agent/llm/应用,同时用一个通道给同一个微信发消息,是可以的。
而且我现在也是这么用的,vscode + claude code + 我自己的一些agent框架都能通过weilink接入。用的是本地同一份token.json。context id的有效性也做了持久化,不同端发送消息的时候能知道距离失效还剩多少次。
在这个基础上,每个接入端可以自行添加消息内容表征来源是何处。

不过如果是这么用的话,有一个潜在的问题,因为消息获取的时候实际上是一个生产者,多个消费者,消费者之间会产生竞态关系,比如应该给A的消息被B获取。有一个正在考虑的方案是通过ref message进行回复,来进行消费者引导。或者是在微信回信的时候明确收信角色。

但如果你说的是其他什么情况的话我就不太清楚了,可能还要你具体描述一下场景。


--【伍】--:

就是在openclaw扫码登录过了,如果再扫码登录就会顶号


--【陆】--:

可以拿到openclaw的登录状态而不用再登录吗?


--【柒】--:

好问题,我测试的时候还没有考虑过这几种,我今天研究一下看看能否能支持上。方便的话帮我开个github issue


--【捌】--:

所以我是想 能不能实现 多端同时接入


--【玖】--:
weilink.readthedocs.io

weilink migrate - CLI 参考 - WeiLink

weilink 命令提供部署、服务器管理和凭证迁移等子命令: | 轻量级微信 iLink Bot 协议 Python SDK

做了一个迁移命令出来,你试试看好0.4.0b1的migrate命令好用否。


--【拾】--:

感谢分享


--【拾壹】--:

链接卡片、小程序这些消息类型能发吗


--【拾贰】--:

不知道您说的openclaw登录状态是指什么?我对openclaw本身不是很熟悉,用其他的工具相对更多一些。可否详细一些?