传送信息往返微信的摆渡车。更多介绍见:微信机器人 DIY 从 0 到 1。
👉 WeChatRobot,一个基于WeChatFerry的Python机器人框架。
欢迎加群交流,后台回复 WeChatFerry
:
下载最新发布的版本。根据技术栈,选择客户端,目前支持:
- C/C++
- Java
- Node.js
- Python
直接运行 cpp.exe
,会拉起微信(如果还没启动的话),登录之后,会依次执行各功能,具体见 main.cpp。
使用惯用IDE,打开工程,编译运行。需要注意,使用32位的JDK,具体见内部 README.MD。
- 安装
pip install wcferry
- 运行 参考 README.MD。
参见 A gRPC Demo。
- 安装,参考Vcpkg: 总览。
cd C:\Tools
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
- 添加全局配置:
环境变量增加
vcpkg
所在路径(本文为:C:\Tools\vcpkg
)。
vcpkg install grpc:x86-windows-static
vcpkg install protobuf[zlib]:x86-windows-static
vcpkg integrate install
cd WeChatFerry/proto/
protoc --cpp_out=. -I=. wcf.proto
protoc --grpc_out=. --plugin=protoc-gen-grpc="C:\Tools\vcpkg\packages\grpc_x64-windows\tools\grpc\grpc_cpp_plugin.exe" -I=. wcf.proto
执行 tree .
,可见生成了四个文件:
.
├── wcf.grpc.pb.cc
├── wcf.grpc.pb.h
├── wcf.pb.cc
├── wcf.pb.h
└── wcf.proto
使用 VS2019 打开工程,编译即可。
双击 Release
里的 cpp.exe
。如果出现中文乱码,则需要将编码改为 UTF-8
。
C++ 示例应用,介绍如何使用 WeChatFerry。
Java 客户端。
启动器,调用 sdk
将 spy
注入微信。其他客户端可通过 RPC 连接到 spy
进行消息传递。监听的地址为 0.0.0.0:10086
。后续考虑把注入功能从各个客户端中去掉,以解除对 32 位版本的限制。
Node.js 客户端(群友贡献),内含一个简单游戏及股票查询逻辑。
RPC 消息及接口定义。
Python 客户端。
负责将 spy
注入微信进程,并启动 gRPC 服务端。
间谍模块,注入到微信中,通过 RPC 做消息转发工作。
- 更新 Python 客户端
- 修改监听地址为
0.0.0.0:10086
- 增加
Launcher
,直接注入spy
更新 Python 客户端。
增加 Java 客户端。
将 RPC 框架切换为 gRPC!
- 获取登录账号微信 ID
修复群聊有系统消息时会崩溃 bug。后续考虑把消息来源交还给客户端自己区别。
- 通过好友验证
- 执行 SQL 语句
修复群消息 @人 功能。有几点注意事项:
vAtWxids
是要@
的wxid
清单,以,
分隔。- 只有群主才能
@所有人
,非群主硬发@所有人
会导致消息发不出去;@所有人
对应vAtWxids
为"notify@all"
。 - 消息体里
@
的数量必须与vAtWxids
里的数量一致,否则消息能发出但@
功能失效。
修复可重入 bug。
优化 Hook 和 Inject 代码,实现可重入。
适配微信 3.7.0.30
。
- 查询数据库,获取库、表。
优化 RPC。
适配微信 3.7.0.29
。
适配微信 3.3.0.115
,新增功能:
- 获取所有联系人
适配微信 3.3.0.115
,新增功能:
- 发送图片消息
适配微信 3.3.0.115
。
适配微信 3.0.0.57
,支持功能:
- 登录状态判断
- 接收文本消息
- 发送文本消息