Skip to main content

wxauto

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

الانتقال إلى التثبيت

معلومات المصدر

المستودع
cluic/wxauto-skill
آخر نشاط في المصدر
٢٧ مارس ٢٠٢٦ في ٠٢:٣٧
لغة SKILL.md المكتشفة
الصينية
النجوم
٣٤
التفرعات
٦

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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 即可使用全部功能
عرض على GitHub