# wxMaster
**Repository Path**: yeyin197/wxMaster
## Basic Information
- **Project Name**: wxMaster
- **Description**: wxMaster是电脑版微信客户端的自动化框架,你可以用任何编程语言通过HTTP协议调用wxMaster框架的API接口,实现微信自动收取消息。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: https://www.xz3.top/wxMaster
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 7
- **Created**: 2025-05-06
- **Last Updated**: 2025-05-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# wxMaster
[下载 wxMaster](https://wxmaster.pages.dev/exe/wxMaster.exe)
wxMaster是电脑版微信客户端的自动化框架,你可以用任何编程语言通过HTTP协议调用wxMaster框架的API接口,实现微信自动收取消息。
wxMaster是面向开发者的,框架提供API功能接口,业务逻辑需要你用编程实现。
# 核心功能
**个人微信自动化 + 任意语言HTTP方式调用API接口 + 安全不封号**
# 实现功能
1. 获取私聊消息
2. 获取群聊消息
3. 获取语音转文字消息
4. 获取通讯录全部联系人
5. 获取群成员列表
6. 获取指定联系人指定条数历史消息
7. 获取全部新消息
>以上所有功能提供HTTP协议API接口。
# 微信版本
4.0.0.26
4.0.0.32
4.0.0.34
4.0.0.35
4.0.1.11
4.0.1.13
4.0.1.17
4.0.1.21
4.0.2.17
[4.0.3.22 下载](https://mksoftcdnhp.yesky.com/6818c710/e02e4ec86536386d79d82ee0554b4ea6/uploadsoft/WeChatWin.4.0.3.22.exe)
>wxMaster框架将尽力支持最新版微信。
>不支持4.0以下的版本。
>其它未测试版本不代表不能用,这个列表只是我本地有过的环境。
>请到微信官网下载最新版 [下载微信](https://pc.weixin.qq.com/)。
# 如何开始
1. [下载并启动wxMaster.exe](https://wxmaster.pages.dev/exe/wxMaster.exe)
2. 用任何编程语言编写业务逻辑。
# 安全愿景
市面上大部分个人微信机器人都采用HOOK注入或协议破解的方法实现,HOOK和协议最致命的缺点就是**易封号**,为了解决易封号的问题,wxMaster应运而生。
wxMaster采用直接读取微信本地数据库的方式获取消息数据,此方式不会被微信判定为危险行为,也就不会出现被封号的情况。
# 隐私声明
- wxMaster不会收集和上传用户的微信数据库内的任何数据。
- wxMaster不会修改、增添和删除用户的微信数据库内的任何数据。
# API接口
## 通用
- **说明**
所有接口都按照此通用格式返回,不同接口的 `data` 值不同。
- **http地址**
`http://127.0.0.1:34567`
>其中 `34567` 是默认端口,允许用户自定义。
- **请求方式**
`GET`
- **返回类型**
`json`
- **返回**
| 键 | 类型 | 示例 | 说明 |
| :---: | :---: | :---: | :---: |
| code | 整数 | 1 | 代码。1表示成功,其它表示失败 |
| msg | 字符串 | success | 成功时为success,失败时为失败原因 |
| data | json数组 | [] | 接口返回值 |
- **返回示例**
```
{
"code": 1,
"msg": "success",
"data": [...]
}
```
## getWxProcess
- **api**
`http://127.0.0.1:34567/getWxProcess`
- **功能**
获取微信进程。
支持获取已登录的多个微信账号(微信多开)。
后续的所有接口都需要提供此接口返回的 **pid**。
调用其它接口之前必须先调用一次此接口,因为 wxMaster 需要对微信进程初始化。
如果中途登录了新的微信账号,必须再次调用一次此接口对新登录的微信初始化。
- **参数**
无
- **data**
数组内每一个元素对应一个微信进程(微信账号)。
| 键 | 类型 | 示例 | 说明 |
| :---: | :---: | :---: | :---: |
| accountNick | 字符串 | 昵称1 | 昵称 |
| pid | 整数 | 111111 | 微信进程id |
| version | 字符串 | 4.0.3.22 | 微信版本号 |
| support | 字符串 | 支持 | 是否是被wxMaster支持的微信版本号
当前支持4.0.x版本 |
- **返回示例:**
```json
{
"code": 1,
"msg": "success",
"data": [
{
"accountNick": "昵称1",
"pid": 111111,
"version": "4.0.3.22",
"support": "支持"
},
{
"accountNick": "昵称2",
"pid": 222222,
"version": "4.0.3.22",
"support": "支持"
}
]
}
```
## getContact
- **API**
`http://127.0.0.1:34567/getContact?pid=111111&getChatroom=1`
- **功能**
获取通讯录。
- **参数**
| 参数 | 必须 | 默认 | 示例 | 说明 |
| :---: | :---:| :---: | :---: | :---: |
| pid | 是 | 无 |111111 | 被获取的微信进程pid |
| getChatroom | 否 | 1 | 1 / 0 | 是否获取群聊 |
| getOpenim | 否 | 1 | 1 / 0 | 是否获取企业微信 |
| getGh | 否 | 1 | 1 / 0 | 是否获取公众号和服务号 |
- **data**
| 键 | 示例 | 说明 |
| :---: | :---: | :---: |
| username | wxid_xxx | 联系人的wxid |
| nick_name | 昵称1 | 联系人昵称 |
| remark | 备注名1 | 备注 |
| small_head_url | `https://wx.qlogo.cn/xxx` | 头像链接 |
- **返回示例**
>username以 `@chatroom` 结尾的是群聊
>username以 `@openim` 结尾的是企业微信联系人
>username以 `gh_` 开头的是公众号或服务号
```
{
"code":1,
"msg":"success",
"data":[
{
"username":"wxid_xxx",
"nick_name":"昵称1",
"remark":"备注名1",
"small_head_url":"https://wx.qlogo.cn/xxx"
},
{
"username":"111111@chatroom",
"nick_name":"群聊名2",
"remark":"备注名2",
"small_head_url":"https://wx.qlogo.cn/xxx"
}
]
}
```
## getChatroomMember
- **API**
`http://127.0.0.1:34567/getChatroomMember?pid=111111&username=12345678901@chatroom`
- **功能**
获取群成员。
- **参数**
| 参数 | 必须 | 示例 | 说明 |
| :---: | :---: | :---: | :---: |
| pid | 是 | 111111 | 被获取的微信进程pid |
| username | 是 | 12345678901@chatroom | 被获取的群username。
从 `getContact` 接口获得 |
- **data**
| 键 | 示例 | 说明 |
| :---: | :---: | :---: |
| nick | 张三 | 群成员的微信昵称 |
| remark | 张三2 | 群成员的群昵称 |
| username | 张三2 | 群成员的wxid |
- **返回示例**
```
{
"code":1,
"msg":"success",
"data":[
{
"nick":"张三",
"remark":"张三2",
"username":"wxid_xxx"
},
{
"nick":"李四",
"remark":"李四2",
"username":"wxid_yyy"
}
]
}
```
## getMsgOne
- **API**
`http://127.0.0.1:34567/getMsgOne?pid=111111&username=wxid_xxx&count=20&getVoice=0`
- **功能**
获取一个联系人的历史消息,可以是好友私聊消息或群聊消息。
- **参数**
| 参数 | 必须 | 默认 | 示例 | 说明 |
| :---: | :---: | :---: | :---: | :---: |
| pid | 是 | 无 | 111111 | 被获取消息的微信进程pid |
| username | 是 | 无 | wxid_xxx | 被获取消息的好友username或群聊username。
从 `getContact` 接口获得 |
| count | 否 | 20 | 20 | 获取历史消息的条数。
不指定则获取20条。 |
| getVoice | 否 | 0 | 0 | 是否获取语音转文本消息。
1:是
0:否 |
- **data**
| 键 | 示例 | 说明 |
| :---: | :---: | :---: |
| content | 我是消息内容 | 消息内容 |
| nick | 张三 | 发送人昵称
如果备注存在,则返回备注 |
| time | 1700000000 | 消息时间戳,10位 |
| type | 1 | 消息类别
见下方详细列表 |
| username| wxid_xxx | 发送人username |
- **type**
消息类别
| type | 消息类型 |
| :---: | :-----: |
| 1 | [文本消息] |
| 3 | [图片消息] |
| 34 | [语音消息]
当语音被转为文字后,可获取到文字内容。|
| 42 | [名片消息] |
| 43 | [视频消息] |
| 47 | [动画表情] |
| 48 | [位置消息] |
| 50 | [音视频通话] |
| 66 | [企业微信好友名片] |
| 10000 | [系统消息] |
| 244813135921 | [引用消息] |
| 17179869233 | [卡片式链接(带描述)] |
| 21474836529 | [卡片式链接/图文消息] |
| 154618822705 | [小程序分享] |
| 12884901937 | [音乐卡片] |
| 8594229559345 | [红包卡片] |
| 81604378673 | [聊天记录合并转发消息] |
| 266287972401 | [拍一拍消息] |
| 8589934592049 | [转账卡片] |
| 270582939697 | [视频号直播卡片] |
| 25769803825 | [文件消息] |
| 292057776177 | [分享链接] |
| 4294967345 | [分享链接] |
| 326417514545 | [分享链接] |
| 219043332145 | [视频号] |
| 141733920817 | [小程序] |
| 103079215153 | [转发的收藏笔记] |
- **返回示例**
```json
{
"code": 1,
"msg": "success",
"data": [
{
"content":"我是文字消息",
"nick":"张三",
"time":1700000000,
"type":1,
"username":"wxid_xxx"
},
{
"content":"我是语音转文字消息",
"nick":"张三",
"time":1700000000,
"type":34,
"username":"wxid_xxx"
},
{
"content":"[图片消息]",
"nick":"张三",
"time":1700000000,
"type":3,
"username":"wxid_xxx"
}
]
}
```
## getMsgNew
- **API**
`http://127.0.0.1:34567/getMsgNew?pid=111111&getVoice=0`
- **功能**
获取全部新消息,包括好友私聊消息和群聊消息。
轮询此接口可获取新消息。
每次调用此接口时,wxMaster会记录当时的时间。下次调用此接口时,消息的发送时间大于上次的时间则认为是新消息。
- **参数**
| 参数 | 必须 | 默认 | 示例 | 说明 |
| :---: | :---: | :---: | :---: | :---: |
| pid | 是 | 无 | 111111 | 被获取消息的微信进程pid |
| getVoice | 否 | 0 | 0 | 是否获取语音转文字消息。
1:是
0:否 |
- **data**
>如果没有新消息,返回的data会是一个空数组。
| 键 | 示例 | 说明 |
| :---: | :---: | :---: |
| fromNick | 张三 / 群聊名称 | 消息来源。
好友昵称,或群聊名称
如果备注存在,则返回备注 |
| fromUsername | wxid_xxx / xxx@chatroom | 消息来源。
好友wxid,或群聊wxid |
| list | [...] | 消息数组。
按时间先后排序,最近的消息在最前面 |
| content | 我是消息内容 | 消息内容。 |
| nick | 张三 | 发送人昵称
如果备注存在,则返回备注 |
| time | 1700000000 | 消息时间戳,10位 |
| type | 1 | 消息类型
参见 `getMsgOne` 接口的type类型 |
| username | wxid_xxx | 发送人wxid |
- **返回示例**
```json
{
"code": 1,
"msg": "success",
"data": [
{
"fromNick":"张三",
"fromUsername":"wxid_xxx",
"list":[
{
"content":"我是文字消息",
"nick":"张三",
"time":1700000000,
"type":1,
"username":"wxid_xxx"
},
{
"content":"我是语音转文字消息",
"nick":"张三",
"time":1700000000,
"type":34,
"username":"wxid_xxx"
},
{
"content":"[图片消息]",
"nick":"张三",
"time":1700000000,
"type":3,
"username":"wxid_xxx"
}
]
},
{
"fromNick":"群聊名",
"fromUsername":"xxx@chatroom",
"list":[
{
"content":"我是文字消息",
"nick":"张三",
"time":1700000000,
"type":1,
"username":"wxid_xxx"
},
{
"content":"我是语音转文字消息",
"nick":"李四",
"time":1700000000,
"type":34,
"username":"wxid_yyy"
},
{
"content":"[图片消息]",
"nick":"王二麻子",
"time":1700000000,
"type":3,
"username":"wxid_zzz"
}
]
}
]
}
```
# 用户协议
用户下载并启动wxMaster即表示同意该协议。
用户通过wxMaster仅能获取自己的微信数据,禁止用于获取别人的微信数据。
用户使用wxMaster产生的任何非法行为与wxMaster无关。
使用框架时需遵守所在地法律法规、相关政策以及企业章程,禁止用于任何违法或侵犯他人权益的行为。
wxMaster需要获取用户PC端微信的数据库密码,从而实现获取微信消息和获取联系人的功能。获取到的数据库密码wxMaster不会上传和发送给任何其他人。用户下载并启动wxMaster即表示同意授权给wxMaster获取微信数据库密码和读取数据库内容的权限。