Caution
请不要在 QQ 官方群聊和任何影响力较大的简中互联网平台(包括但不限于: 哔哩哔哩,微博,知乎,抖音等)发布和讨论任何与本Client存在相关性的信息!
wxhelper的OneBot V12客户端实现。
wxhelper:Hook WeChat / 微信逆向。
部分扩展API参考自ComWeChatBotClient。
Vanilla Client
采用 AGPLv3 协议开源,不鼓励、不支持一切商业使用。
Vanilla Client目前支持的微信版本为3.9.8.25
,可点击此处下载。
由于Vanilla Client的上游依赖wxhelper通过逆向微信得到的接口,故Vanilla Client仅支持Windows
平台。
由于Vanilla Client的部分语法问题,故Vanilla Client仅支持Python 3.1x
版本。
如果你在使用过程中发现了bug,或者有好的想法,请速速提交issue,开发者会在第一时间进行处理。
也可进入QQ交流群提交issue/获取最新进展。
由于使用了poetry进行虚拟环境管理,故使用以下命令运行:
poetry install
# poetry install --no-root
poetry run python main.py
参数名 | 解释 | 范例/默认值 | 备注 |
---|---|---|---|
connect_url | 目标WeChat.exe被hook后的地址 | 127.0.0.1 | |
PORT | 目标WeChat.exe被hook后的端口 | 19088 | |
HOOK_PORT | HookMsg接收端口 | 8000 | |
onebot_ip | onebot链接地址 | 127.0.0.1 | 暂时仅支持反向连接和ip连接。 |
onebot_port | onebot链接端口号 | 8080 | 暂时仅支持反向连接。 |
data_path | 运行数据路径 | C:\\data或C:\data | 请使用绝对路径。 |
wx_data_path | 微信数据路径 | C:\<路径>\WeChat Files或C:<路径>\WeChat Files | 请使用绝对路径。 路径可自行在微信设置中查询,如果为空则部分功能可能受到限制。 |
ws_max_size | websocket文件缓冲大小 | 4 | 单位MB,不能为0或空。 |
wx_version | 微信版本号 | 3.9.8.25 | 请勿修改! |
V_version | Vanilla Client版本号 | 1.3.1 | 请勿修改! |
- HTTP
- HTTP Webhook
- 正向 Websocket
- 反向 Websocket
元事件:
Event | 实现情况 | 备注 |
---|---|---|
meta.connect | ✔️ | |
meta.heartbeat | ⭕ | 后续可能更新 |
meta.status_update | ✔️ |
Message事件:
Event | 实现情况 | 备注 |
---|---|---|
message.private | ✔️ | 某些latest message事件可能会误触发 目前仅支持接收文本和部分notice事件 |
message.group | ✔️ | 由于上游端限制,被at会通过文本检测,准确性可能存在误差 目前仅支持接收文本和部分notice事件 |
message.channel | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
Notice事件:
Event | 实现情况 | 备注 |
---|---|---|
notice.friend_increase | ❌ | 后续可能更新 |
notice.friend_decrease | ⭕ | 后续可能更新 |
notice.private_message_delete | ✔️ | |
notice.group_member_increase | ⭕ | 后续可能更新 |
notice.group_member_decrease | ⭕ | 后续可能更新 |
notice.group_message_delete | ✔️ | |
notice.guild_member_increase | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
notice.guild_member_decrease | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
notice.channel_member_increase | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
notice.channel_member_decrease | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
notice.channel_message_delete | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
notice.channel_create | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
notice.channel_delete | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
用户Action:
Action | 实现情况 | 备注 |
---|---|---|
get_self_info | ✔️ | |
get_user_info | ✔️ | 由于上游端限制,bot在群聊中会通过监听消息的方式收集群成员的wxid和username并保存为member.db。 在私聊事件中,若被触发wxid不存在于member.db,则username默认返回wxid。 你可以通过修改db文件的方式进行username的自定义。 |
get_friend_list | ✔️ |
Message Action:
Action | 实现情况 | 备注 |
---|---|---|
send_message | ✔️/⭕ | 群聊/个人消息均支持。 目前仅支持发送静态图片和文本。 由于上游端支持问题,gif动图默认以静态图片形式发送。 |
delete_message | ❌ | 因上游端问题无法实现 |
文件Action:
Action | 实现情况 | 备注 |
---|---|---|
upload_file | ✔️ | |
upload_file_fragmented | ⭕ | 后续可能更新 |
get_file | ⭕ | 忘记有没有写了 |
get_file_fragmented | ⭕ | 后续可能更新 |
群组Action:
Action | 实现情况 | 备注 |
---|---|---|
get_group_info | ⭕ | 后续可能更新 |
get_group_list | ⭕ | 后续可能更新 |
get_group_member_info | ⭕ | 后续可能更新 |
get_group_member_list | ⭕ | 后续可能更新 |
set_group_name | ⭕ | 后续可能更新 |
leave_group | ⭕ | 后续可能更新 |
get_guild_info | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
get_guild_list | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
set_guild_name | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
get_guild_member_info | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
get_guild_member_list | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
leave_guild | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
get_channel_info | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
get_channel_list | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
set_channel_name | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
get_channel_member_info | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
get_channel_member_list | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
leave_channel | ❌ | 已知微信并没有类似两级群组的结构,故目前不考虑支持 |
扩展Event:
Event | 实现情况 | 备注 |
---|---|---|
notice.get_private_poke | ✔️ | 参考自ComWeChatBotClient,用法相同。 |
notice.wx.get_group_poke | ✔️ | 参考自ComWeChatBotClient,用法相同。 |
扩展Action:
Action | 实现情况 | 备注 |
---|
名称 | 实现情况 | 备注 |
---|---|---|
OneBot V11支持 | ❌ | 由于wxid的性质与OneBot V11标准冲突, (在OneBot V11中,user_id要求为int64),故不提供支持。 |
多开支持 | ❌ | 由于某些特殊原因,不提供支持。 |
他人被at检测 | ❌ | 上游端暂未实现,所以暂不考虑支持 |