综合介绍
WeChatFerry 是一个开源的微信机器人底层框架,由开发者 lich0821 在 GitHub 上创建并维护。该项目通过微信 Hook 技术,提供了一套强大的 SDK,允许开发者将微信功能与多种大语言模型(如 ChatGPT、Gemini、DeepSeek、ChatGLM、讯飞星火、Tigerbot 等)集成,实现自动化任务和智能对话。核心模块使用 C++ 编写,支持多种客户端语言(如 Python、Rust、Go、Java、Node.js、C# 等),并适配特定微信版本(当前支持 3.9.11.25)。凭借其灵活性和丰富功能,WeChatFerry 已吸引 5.5k 星标和 1.1k forks,成为微信机器人开发的热门工具。
功能列表
- 消息收发:支持发送文本(含 @)、图片、文件、GIF,并可监听和接收消息。
- 大语言模型集成:可接入 ChatGPT、Gemini、DeepSeek、ChatGLM、讯飞星火等模型,实现智能回复或任务处理。
- 群聊管理:支持邀请群成员、获取群信息等操作。
- 多媒体处理:支持下载图片、文件,解密图片,以及将语音文件(Silk)转为 MP3。
- 数据库访问:可查询微信联系人、消息记录等数据。
- 登录状态管理:提供获取登录二维码、检查登录状态、获取账号信息(wxid、昵称、手机号等)功能。
- 多语言客户端:支持 Python、Rust、Go、Java、Node.js、C# 等语言的客户端开发。
- 自动化任务:支持消息转发、定时任务等,适用于客服、教育等场景。
使用帮助
安装流程
WeChatFerry 的使用分为两部分:核心模块编译(开发者)和客户端安装(普通用户)。以下是详细步骤:
1. 客户端安装(以 Python 为例)
- 安装 Python 环境:推荐使用 Python 3.10,从 python.org 下载并安装,确保
pip
可用。 - 安装 wcferry 包:打开命令行,运行:
pip install --upgrade wcferry
- 验证安装:在 Python 中运行
import wcferry
,无报错即成功。
2. 核心模块编译(开发者可选)
- 准备环境:
- 安装 Visual Studio 2019(社区版),包含 C++ 开发组件。
- 安装 Git,用于克隆仓库。
- 克隆仓库:
git clone https://github.com/lich0821/WeChatFerry.git cd WeChatFerry
- 编译项目:
- 使用 VS2019 打开
WeChatFerry\WeChatFerry\WeChatFerry.sln
。 - 点击“生成” > “生成解决方案”,编译完成后在
WeChatFerry\WeChatFerry\Out
目录下生成sdk.dll
。 - 注意:若遇到
protoc
错误 9009,检查 Python 环境或配置protoc
环境变量(需安装 protobuf)。
- 使用 VS2019 打开
3. 启动微信并注入
- 准备微信:安装支持的微信版本(如 3.9.10.27 或 3.9.11.25,具体见 Releases)。
- 运行示例:参考官方代码加载
sdk.dll
并初始化:import ctypes sdk = ctypes.cdll.LoadLibrary("C:/path/to/WeChatFerry/WeChatFerry/Out/sdk.dll") sdk.WxInitSDK(False, 10086) # 初始化,默认端口 10086
- 退出 SDK:使用完毕后运行
sdk.WxDestroySDK()
,并关闭 Python 进程。
主要功能操作
消息收发
- 发送文本消息:
from wcferry import Wcf wcf = Wcf() wcf.send_text("你好", "wxid_xxxx") # wxid_xxxx 为目标微信 ID
- 支持 @ 某人:
wcf.send_text("你好 @Tom", "roomid_xxxx")
。
- 支持 @ 某人:
- 接收消息:
wcf.enable_receiving_msgs() # 开启接收 while True: msg = wcf.get_msg() if msg: print(f"收到: {msg.content}") wcf.disable_receiving_msgs() # 停止接收
大语言模型集成
- 接入 ChatGPT 示例(需自行配置 API Key):
from wcferry import Wcf import openai wcf = Wcf() openai.api_key = "your_api_key" def chatgpt_reply(msg): response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": msg.content}] ) wcf.send_text(response.choices[0].message.content, msg.sender) wcf.enable_receiving_msgs() while True: msg = wcf.get_msg() if msg: chatgpt_reply(msg)
多媒体处理
- 发送图片:
wcf.send_image("C:/Pictures/test.jpg", "wxid_xxxx")
- 语音转 MP3:使用
smc
模块(需编译),将.silk
文件转为.mp3
:from wcferry import smc smc.silk_to_mp3("input.silk", "output.mp3")
群聊管理
- 邀请成员:
wcf.invite_room_members("roomid_xxxx", ["wxid_user1", "wxid_user2"])
- 获取群信息:
room_info = wcf.get_chatroom_info("roomid_xxxx") print(room_info)
操作流程示例
- 启动框架:编译
sdk.dll
,运行 Python 脚本加载并初始化。 - 登录微信:执行
wcf.get_login_qrcode()
获取二维码,扫码登录。 - 配置功能:编写脚本实现消息监听、自动回复或群管理。
- 运行测试:在命令行运行脚本,检查微信行为是否符合预期。
- 调试优化:若出错,可在 VS2019 中添加调试日志(如
DbgMsg("Test")
),定位问题。
多语言客户端支持
- Rust:使用 wcfrust。
- Go:参考 go_wcf_http。
- Java:见 java 客户端说明。
- Node.js:使用 wcferry-node。
- C#:参考 WeChatFerry-CSharp。
- Docker:使用 docker_wechat。
注意事项
- 当前适配微信版本为 3.9.11.25,版本不符可能导致注入失败。
- 项目仅限学习和研究用途,遵循 MIT 许可证。
- 多开暂不支持,需单实例运行。