Skip to main content

wxauto

微信自动化操作。通过 wxautox4 RESTful API 实现发送消息、获取聊天记录、监听消息、好友管理等功能。Use when: (1) 发送微信消息给好友或群聊,(2) 读取微信聊天记录,(3) 监听新消息,(4) 获取好友列表或群聊列表,(5) 接受好友申请,(6) 切换聊天窗口等微信操作。

Ir a la instalación

Datos de origen

Repositorio
cluic/wxauto-skill
Última actividad en el origen
27 de marzo de 2026 a las 02:37
Idioma detectado de SKILL.md
chino
Estrellas
34
Forks
6

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
2 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
wxauto
description
微信自动化操作。通过 wxautox4 RESTful API 实现发送消息、获取聊天记录、监听消息、好友管理等功能。Use when: (1) 发送微信消息给好友或群聊,(2) 读取微信聊天记录,(3) 监听新消息,(4) 获取好友列表或群聊列表,(5) 接受好友申请,(6) 切换聊天窗口等微信操作。
# 微信自动化 通过 wxautox4 RESTful API 操作微信,支持消息收发、监听、好友管理等功能。API 服务必须运行在 **Windows 设备**上(wxautox4 仅支持 Windows),可通过本地或远程方式连接。 ## 步骤 0:平台检测(最优先执行) **在做任何其他操作之前,先检测当前设备的操作系统**: ```python import platform print(platform.system()) # 返回 'Windows' / 'Darwin' / 'Linux' ``` 根据结果走不同分支: --- ### 非 Windows 设备(macOS / Linux) > wxautox4 服务只能运行在 Windows 上,**不要尝试在当前设备安装或启动服务**。 直接询问用户远程服务信息(使用 AskUserQuestion 或等效工具): ``` 问题1:请提供 wxauto-restful-api 服务地址(例如 http://192.168.1.100:8000) 问题2:请提供服务的 Bearer Token(见服务端 config.yaml 的 auth.token,默认为 token) ``` 获取到地址和 token 后: 1. 将配置写入环境变量或直接传入脚本参数 2. 调用健康检查接口验证连通性:`GET /v1/wechat/status` 3. 如果连接失败,提示用户检查:网络是否可达、服务是否已启动、token 是否正确 4. 连接成功后直接执行用户操作,**不需要任何本地安装步骤** --- ### Windows 设备 先检查本地服务是否已运行(读取 `~/.wxautox/service_status.json` 并做健康检查): - **本地服务已运行**:自动连接,无需用户操作 - **本地服务未运行**:询问用户选择方式(见下方「服务未运行时的处理」) --- ## 服务配置 - 认证:Bearer Token(见 `config.yaml` 的 `auth.token`,默认值为 `token`) - 服务状态文件:`~/.wxautox/service_status.json`(服务启动时自动生成,仅 Windows 本地部署时存在) ### 配置优先级(从高到低) 1. **命令行参数** ```bash python scripts/wxapi.py --base-url "http://192.168.1.100:8000" --token "my-token" send "好友" "消息" ``` 2. **环境变量** ```bash # 通用(macOS/Linux/Windows) export WXAPI_BASE_URL="http://192.168.1.100:8000" export WXAPI_TOKEN="my-token" # Windows PowerShell $env:WXAPI_BASE_URL = "http://192.168.1.100:8000" $env:WXAPI_TOKEN = "my-token" ``` 3. **service_status.json** - 自动检测(仅 Windows 本地部署时可用) 4. **config.yaml** - 服务目录下的配置文件(仅 Windows 本地部署时可用) 5. **默认值** - `http://localhost:8000`, token 为 `token` ### 服务目录搜索顺序(仅 Windows) 1. `WXAPI_SERVICE_DIR` 环境变量指定的路径 2. `~/.wxautox/service_status.json` 中记录的 `service_dir` 3. `../wxauto-restful-api`(相对于 skill 目录) 4. `~/wxauto-restful-api` ## 启动服务(仅 Windows) > macOS / Linux 用户无需执行此节,直接使用远程服务地址即可。 **前置要求**: 1. 安装 wxautox4: ```powershell pip install wxautox4 ``` > 需 Windows 系统,Python 3.9–3.12 64 位 2. 激活 wxautox4: ```powershell wxautox4 -a your-activation-code ``` > 获取激活码:https://docs.wxauto.org/plus 3. 部署并启动 API 服务: ```powershell # 进入服务目录 cd C:\path\to\wxauto-restful-api # 启动服务 python run.py ``` 或后台启动: ```powershell Start-Process python -ArgumentList "run.py" -WorkingDirectory "C:\path\to\wxauto-restful-api" -WindowStyle Hidden ``` ## 脚本路径 调用脚本使用相对于 skill 目录根的相对路径: ```bash python scripts/wxapi.py send "好友" "消息" ``` 查看帮助: ```bash python scripts/wxapi.py --help ``` ## 可用命令 ### 初始化和状态 ```powershell # 初始化微信实例 python scripts/wxapi.py init # 获取服务状态 python scripts/wxapi.py status # 检查是否在线 python scripts/wxapi.py online # 获取我的信息 python scripts/wxapi.py myinfo ``` ### 发送消息 ```powershell # 主窗口发送 python scripts/wxapi.py send "好友名" "消息内容" # 精确匹配 python scripts/wxapi.py send "好友名" "消息内容" --exact # @群成员 python scripts/wxapi.py send "群名" "开会了" --at "张三,李四" # 子窗口发送 python scripts/wxapi.py send-chat "好友名" "消息内容" ``` ### 读取消息 ```powershell # 获取聊天记录(主窗口) python scripts/wxapi.py getmsg "好友名" # 获取聊天记录(子窗口) python scripts/wxapi.py getmsg-chat "好友名" # 获取历史消息 python scripts/wxapi.py history "好友名" --count 100 # 获取新消息(主窗口轮询) python scripts/wxapi.py newmsg # 获取新消息(子窗口) python scripts/wxapi.py newmsg-chat "好友名" ``` ### 监听管理 ```powershell # 添加监听(打开子窗口) python scripts/wxapi.py listen "好友名" ``` ### 会话管理 ```powershell # 获取会话列表 python scripts/wxapi.py session # 获取所有子窗口 python scripts/wxapi.py windows # 切换聊天窗口 python scripts/wxapi.py chatwith "好友名" --exact ``` ### 获取列表 ```powershell # 好友列表 python scripts/wxapi.py friends # 群聊列表 python scripts/wxapi.py groups ``` ### 页面控制 ```powershell # 切换到聊天页面 python scripts/wxapi.py switch-chat # 切换到联系人页面 python scripts/wxapi.py switch-contact ``` ### 查看帮助 ```powershell python scripts/wxapi.py --help ``` ## API 接口列表 根据 wxauto-restful-api 服务: ### 微信功能接口 | 接口 | 说明 | |------|------| | `POST /v1/wechat/initialize` | 初始化微信实例 | | `GET /v1/wechat/status` | 获取微信状态 | | `POST /v1/wechat/send` | 发送消息 | | `POST /v1/wechat/sendfile` | 发送文件 | | `POST /v1/wechat/sendurlcard` | 发送 URL 卡片 | | `POST /v1/wechat/getallmessage` | 获取当前窗口消息 | | `POST /v1/wechat/gethistorymessage` | 获取历史消息 | | `POST /v1/wechat/getnextnewmessage` | 获取新消息 | | `POST /v1/wechat/getsession` | 获取会话列表 | | `POST /v1/wechat/getsubwindow` | 获取指定子窗口 | | `POST /v1/wechat/getallsubwindow` | 获取所有子窗口 | | `POST /v1/wechat/chatwith` | 切换聊天窗口 | | `POST /v1/wechat/getfriends` | 获取好友列表 | | `POST /v1/wechat/getmyinfo` | 获取我的信息 | | `POST /v1/wechat/getrecentgroups` | 获取群聊列表 | | `POST /v1/wechat/switch/chat` | 切换到聊天页面 | | `POST /v1/wechat/switch/contact` | 切换到联系人页面 | | `POST /v1/wechat/isonline` | 检查在线状态 | ### 聊天接口(子窗口) | 接口 | 说明 | |------|------| | `POST /v1/chat/send` | 子窗口发送消息 | | `POST /v1/chat/getallmessage` | 获取子窗口所有消息 | | `POST /v1/chat/getnewmessage` | 获取子窗口新消息 | | `POST /v1/chat/msg/quote` | 发送引用消息 | | `POST /v1/chat/close` | 关闭子窗口 | ## 直接 API 调用(备选) 如需直接调用 HTTP API,用 Python(不要用 PowerShell,有中文编码问题): ```python import requests headers = {"Authorization": "Bearer token", "Content-Type": "application/json"} body = {"who": "好友名", "msg": "消息内容"} resp = requests.post("http://localhost:8000/v1/wechat/send", headers=headers, json=body) print(resp.json()) ``` ## 响应格式 所有 API 返回统一格式: ```json { "success": true, "message": "操作成功", "data": { ... } } ``` ## 服务未运行时的处理 ### 非 Windows 设备 无法在本地启动服务。**不要直接报错**,使用询问工具询问用户: 提问内容:「当前设备(macOS/Linux)无法运行 wxautox4 服务,请提供运行在 Windows 设备上的远程服务信息」 需要用户提供: 1. **服务地址**(如 `http://192.168.1.100:8000`) 2. **Bearer Token**(服务端 `config.yaml` 中 `auth.token` 的值,默认为 `token`) 获取后做连通性验证,成功则继续执行用户原本的操作。 --- ### Windows 设备 当执行命令发现 wxauto-restful-api 服务未运行时,wxapi.py 会按以下顺序尝试自动恢复: 1. 检查 `~/.wxautox/service_status.json` 中的 `service_dir` 定位项目路径 2. 搜索默认路径(见上方搜索顺序) 3. 找到项目目录后自动启动服务 如果以上都无法定位到项目目录,**不要直接报错**,使用询问工具询问用户: 提问内容:「wxauto-restful-api 服务未运行,请选择处理方式」 选项: 1. **自动部署并启动本地服务** - 从 GitHub 克隆项目,安装依赖,启动服务(启动后路径自动记录到 `service_status.json`) 2. **仅启动本地服务** - 服务目录已存在,只需启动(需用户提供路径) 3. **连接远程服务** - 服务运行在其他 Windows 设备上,需提供服务地址和 Token 4. **跳过** - 用户自行处理 如果用户选择「自动部署并启动本地服务」,执行以下步骤: ```powershell # 1. 克隆项目到用户目录 cd ~ git clone https://github.com/cluic/wxauto-restful-api.git # 2. 创建虚拟环境 cd wxauto-restful-api python -m venv .venv # 3. 激活虚拟环境并安装依赖 .venv\Scripts\activate pip install -r requirements.txt # 4. 后台启动服务 python run.py ``` 启动后验证服务是否正常运行(检查健康接口),然后继续执行用户原本的操作。 ## 注意事项 1. 微信客户端需要在运行服务的 **Windows 设备**上保持打开状态 2. wxautox4 需要激活后才能使用(仅 Windows 端需要) 3. **不要用 PowerShell 直接调用 API**(中文编码问题),请使用 Python 脚本 4. 修改服务端 `config.yaml` 中的 `auth.token` 以增强安全性 5. **macOS / Linux 用户**:跳过所有本地安装步骤,仅需提供远程服务地址和 Token 即可使用全部功能
Ver en GitHub