WeChatFerry/README.MD

172 lines
4.7 KiB
Plaintext
Raw Normal View History

2021-02-12 23:21:57 +08:00
# WeChatFerry
2022-09-20 21:32:51 +08:00
传送信息往返微信的摆渡车。更多介绍见:[微信机器人 DIY 从 0 到 1](https://mp.weixin.qq.com/s/c4ntj-7NTmbpSfF8df6dIw)。
2022-11-21 00:20:53 +08:00
![Demo](demo.gif)
👉 [WeChatRobot](https://github.com/lich0821/WeChatRobot)一个基于WeChatFerry的Python机器人框架。
2022-09-20 21:32:51 +08:00
欢迎加群交流,后台回复 `WeChatFerry `
2022-09-20 21:34:04 +08:00
2022-10-15 20:25:42 +08:00
![碲矿](TEQuant.jpeg)
2021-02-12 23:21:57 +08:00
## 快速开始
2022-10-18 19:19:10 +08:00
下载[最新发布的版本](https://github.com/lich0821/WeChatFerry/releases/latest)。根据技术栈,选择客户端,目前支持:
* C/C++
* Java
2023-01-20 11:36:56 +08:00
* Node.js
2022-10-18 19:19:10 +08:00
* Python
### C/C++
直接运行 `cpp.exe`,会拉起微信(如果还没启动的话),登录之后,会依次执行各功能,具体见 [main.cpp](cpp/main.cpp)。
### Java
使用惯用IDE打开工程编译运行。需要注意使用32位的JDK具体见内部 [README.MD](java/README.MD)。
### Python
2022-10-19 23:04:52 +08:00
* 安装
```sh
pip install wcferry
```
* 运行
参考 [README.MD](python/README.MD)。
2022-10-18 19:19:10 +08:00
## 一起开发
2022-10-15 21:15:33 +08:00
### 安装开发环境
参见 [A gRPC Demo](https://github.com/lich0821/gRpcDemo/blob/wx/README.MD)。
#### 安装 vcpkg
* 安装,参考[Vcpkg: 总览](https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md)。
```sh
cd C:\Tools
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
```
* 添加全局配置:
环境变量增加 `vcpkg` 所在路径(本文为:`C:\Tools\vcpkg`)。
#### 安装 gRPC 相关组件
```sh
vcpkg install grpc:x86-windows-static
vcpkg install protobuf[zlib]:x86-windows-static
vcpkg integrate install
```
#### 安装 VS2019
### 生成编解码文件和接口文件
```sh
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
```
2022-10-16 11:10:43 +08:00
执行 `tree .`,可见生成了四个文件:
2022-10-15 21:15:33 +08:00
```txt
.
├── wcf.grpc.pb.cc
├── wcf.grpc.pb.h
├── wcf.pb.cc
├── wcf.pb.h
└── wcf.proto
```
### 编译
使用 VS2019 打开工程,编译即可。
### 运行
双击 `Release` 里的 `cpp.exe`。如果出现中文乱码,则需要将编码改为 `UTF-8`。
2021-02-12 23:21:57 +08:00
## 项目结构
2022-10-15 21:15:33 +08:00
### cpp
C++ 示例应用,介绍如何使用 WeChatFerry。
2021-02-12 23:21:57 +08:00
2022-10-18 19:18:26 +08:00
### java
Java 客户端。
2023-01-20 11:18:24 +08:00
### launcher
启动器,调用 `sdk` 将 `spy` 注入微信。其他客户端可通过 RPC 连接到 `spy` 进行消息传递。监听的地址为 `0.0.0.0:10086`。后续考虑把注入功能从各个客户端中去掉,以解除对 32 位版本的限制。
2023-01-20 11:35:50 +08:00
### nodejs
Node.js 客户端(群友贡献),内含一个简单游戏及股票查询逻辑。
2022-10-15 21:15:33 +08:00
### proto
RPC 消息及接口定义。
2021-02-12 23:21:57 +08:00
2022-10-16 22:42:21 +08:00
### python
Python 客户端。
2022-10-15 21:15:33 +08:00
### sdk
负责将 `spy` 注入微信进程,并启动 gRPC 服务端。
2021-02-12 23:21:57 +08:00
2022-10-15 21:15:33 +08:00
### spy
间谍模块,注入到微信中,通过 RPC 做消息转发工作。
2021-08-22 22:05:25 +08:00
## 版本更新
2023-01-20 11:18:24 +08:00
### v3.7.0.30.12
* 更新 Python 客户端
* 修改监听地址为 `0.0.0.0:10086`
* 增加 `Launcher`,直接注入 `spy`
2022-10-19 23:06:50 +08:00
### v3.7.0.30.11
更新 Python 客户端。
2022-10-18 19:32:31 +08:00
### v3.7.0.30-gRPC-22022.10.18
增加 Java 客户端。
2022-10-16 23:05:21 +08:00
### v3.7.0.30-gRPC-12022.10.16
2022-10-15 21:15:33 +08:00
将 RPC 框架切换为 gRPC
2022-09-25 11:25:22 +08:00
### v3.7.0.30-82022.09.25
* 获取登录账号微信 ID
2022-09-24 16:52:23 +08:00
### v3.7.0.30-72022.09.24
修复群聊有系统消息时会崩溃 bug。后续考虑把消息来源交还给客户端自己区别。
2022-08-21 08:48:37 +08:00
### v3.7.0.30-62022.08.21
* 通过好友验证
2022-08-20 22:16:29 +08:00
### v3.7.0.30-52022.08.20
* 执行 SQL 语句
2022-08-20 21:39:58 +08:00
### v3.7.0.30-42022.08.20
修复群消息 @人 功能。有几点注意事项:
1. `vAtWxids` 是要 `@` 的 `wxid` 清单,以 `,` 分隔。
2. 只有群主才能 `@所有人`,非群主硬发 `@所有人` 会导致消息发不出去;`@所有人` 对应 `vAtWxids` 为 `"notify@all"`。
3. 消息体里 `@` 的数量必须与 `vAtWxids` 里的数量一致,否则消息能发出但 `@` 功能失效。
2022-08-20 15:34:38 +08:00
### v3.7.0.30-32022.08.20
修复可重入 bug。
2022-08-14 07:21:33 +08:00
### v3.7.0.30-22022.08.14
优化 Hook 和 Inject 代码,实现可重入。
2022-08-12 23:18:46 +08:00
### v3.7.0.30-12022.08.12
适配微信 `3.7.0.30`。
2022-08-07 23:50:02 +08:00
### v3.7.0.29-32022.08.7
* 查询数据库,获取库、表。
2022-08-07 21:39:58 +08:00
### v3.7.0.29-22022.08.7
优化 RPC。
2022-08-07 15:13:18 +08:00
### v3.7.0.29-12022.08.7
适配微信 `3.7.0.29`。
2021-08-28 08:35:43 +08:00
### v3.3.0.115-32021.08.28
适配微信 `3.3.0.115`,新增功能:
* 获取所有联系人
2021-08-22 22:05:25 +08:00
### v3.3.0.115-22021.08.22
适配微信 `3.3.0.115`,新增功能:
* 发送图片消息
### v3.3.0.115-12021.08.22
适配微信 `3.3.0.115`。
### v3.0.0.57-12021.02.12
适配微信 `3.0.0.57`,支持功能:
* 登录状态判断
* 接收文本消息
* 发送文本消息