一个玩微信的工具。更多介绍见:WeChatFerry: 一个玩微信的工具。
⚠️  免责声明【必读】⚠️ 
请阅读完整的免责声明:点击查看
| 📖 Python 文档 | 📺 Python 视频教程 | 🙋 FAQ | 
|---|
👉 WeChatRobot🤖,一个基于 WeChatFerry 的 Python 机器人示例。
后台回复 WCF 加群交流 | 
如果你觉得有用 | 
点击查看功能清单
- 获取登录二维码
 - 查询登录状态
 - 获取登录账号信息
 - 获取消息类型
 - 获取联系人
 - 获取可查询数据库
 - 获取数据库所有表
 - 获取语音消息
 - 发送文本消息(可 @)
 - 发送图片消息
 - 发送文件消息
 - 发送卡片消息
 - 发送 XML 消息
 - 发送 GIF 消息
 - 拍一拍群友
 - 转发消息
 - 开启接收消息
 - 关闭接收消息
 - 查询数据库
 - 获取朋友圈消息
 - 下载图片、视频、文件
 - 解密图片
 - 添加群成员
 - 删除群成员
 - 邀请群成员
 
点击查看支持的客户端
- Python
 - HTTP
 - NodeJS
 
- 安装
 
pip install --upgrade wcferry- 参考示例:🤖WeChatRobot
 
- wcfrust(基于 Rust)
 - go_wcf_http(基于 Go)
 - wrest-chat(基于 Go)
 - wcf-http(基于 Python)
 
🚫 非开发用户不需要往下看。
开发用户:可以根据文档和错误提示,自行解决编译错误的人员。
点击查看
- 安装,参考Vcpkg: 总览。
 
cd C:\Tools
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat- 添加全局配置:
环境变量增加 
vcpkg所在路径(本文为:C:\Tools\vcpkg): 
setx VCPKG_ROOT "C:/Tools/vcpkg" /M- 与 Visual Studio 集成
 
vcpkg integrate install # 失败则说明未正确安装或者未正确配置环境变量编译时会自动安装。但如果需要使用 protoc.exe,则需要配置一下 protoc.exe 环境变量:<vcpkg_package_installed_path>\x64-windows-static\x64-windows-static\tools\protobuf。
(本文为:C:\Projs\WeChatFerry\WeChatFerry\vcpkg_installed\x64-windows-static\x64-windows-static\tools\protobuf)
通过微软商店或者 python.org 自行下载均可(注意 python 版本不能太高,否则需要自行编译依赖,建议使用 python 3.10),然后配置好环境变量,确保 python 在命令行下可用。
安装依赖:
pip install grpcio-tools==1.48.2使用 VS2019 打开工程,编译即可。编译成功后,在 WeChatFerry\WeChatFerry\Out 目录中会看到相应的 DLL 文件。
注:如果遇到执行 protoc 时的 9009 错误,检查是否是 python3 环境有问题,或者 protoc 命令的环境变量配置不正确。
import ctypes
# 加载 sdk.dll (需要绝对路径)
sdk = ctypes.cdll.LoadLibrary("C:/Projs/WeChatFerry/WeChatFerry/Out/sdk.dll")
# 初始化
sdk.WxInitSDK(False, 10086)
# 退出 SDK
sdk.WxDestroySDK()
# 注意关闭 Python 进程    DbgMsg("ListenMessage"); // 封装的 OutputDebugString
    OutputDebugString(L"ListenMessage\n");
    MessageBox(NULL, L"ListenMessage", L"ListenMessage", 0);WeChatFerry
├── LICENSE                 # LICENSE
├── README.MD               # 说明
├── WeChatFerry
│   ├── WeChatFerry.sln     # VS2019 工程文件
│   ├── com                 # 公共模块
│   ├── rpc                 # RPC 模块
│   ├── sdk                 # 注入及启动模块
│   ├── smc                 # Silk-Mp3 转换模块
│   └── spy                 # 核心功能实现模块
├── assets
│   ├── QR.jpeg             # 二维码,测试用图
│   ├── TEQuant.jpg         # 二维码,测试用图
│   └── demo.gif            # 示例动图
├── clients
│   ├── go                  # Go 客户端
│   ├── gohttp              # HTTP 客户端
│   ├── http                # HTTP 客户端
│   ├── java                # Java 客户端
│   ├── node                # Node.js 客户端
│   ├── pyauto              # 群友封装的客户端
│   ├── python              # Python 客户端
│   └── rust                # Rust 客户端
└── docs                    # 文档
- 代码优化
 
点击查看更多
客户端越来越多了,版本号开始混乱,所以重新定义了版本号:w.x.y.z。
其中:
w是微信的大版本号,如37(3.7.a.a),38(3.8.a.a),39(3.9.a.a)x是适配的微信的小版本号,从 0 开始y是WeChatFerry的版本,从 0 开始z是各客户端的版本,从 0 开始
- 实现获取登录二维码
 
- 修复发送文件 / 图片中文路径问题
 
- 修复接收消息问题
 
- 适配 
3.9.11.25 
- 修复 wxid 问题
 
- 实现发送 GIF
 
- 修复开启、停止接收消息失败问题
 
- 实现了好多功能(见功能清单)
 
- 开始适配 
3.9.10.27 - 实现检查登录状态
 - 实现获取登录账号信息(wxid、昵称、手机号、数据目录)
 - 实现获取消息类型
 - 实现开启接收消息
 - 实现停止接收消息
 - 实现发送文本消息(可 @)
 - 实现发送图片消息
 
- 适配 x64 环境
 - 重构项目
 - 开始适配 
3.9.10.19