aldinokemal/go-whatsapp-web-multidevice

GitHub: aldinokemal/go-whatsapp-web-multidevice

一个支持多设备、REST 与 MCP 模式的 Go 语言 WhatsApp 网关,解决统一管理与自动化交互问题。

Stars: 3797 | Forks: 897

GoWA Logo ## Golang WhatsApp - 使用 Go 构建以实现高效内存使用
![release version](https://img.shields.io/github/v/release/aldinokemal/go-whatsapp-web-multidevice) ![Build Image](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/0dc3b353e0110201.svg) ![Binary Release](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/286ff67d8b110202.svg) ## 支持 `ARM` 与 `AMD` 架构以及 `MCP` 支持 下载: - [发行版](https://github.com/aldinokemal/go-whatsapp-web-multidevice/releases/latest) - [Docker Hub](https://hub.docker.com/r/aldinokemal2104/go-whatsapp-web-multidevice/tags) - [GitHub 容器注册表](https://github.com/aldinokemal/go-whatsapp-web-multidevice/pkgs/container/go-whatsapp-web-multidevice) ## 支持 n8n 包(n8n.io) ## 重大变更 - `v6` - 对于 REST 模式,您需要运行 ` rest` 而不是 `` - 例如:`./whatsapp rest` 替代 ~~./whatsapp~~ - 对于 MCP 模式,您需要运行 ` mcp` - 例如:`./whatsapp mcp` - `v7` - 从 7.x 版本开始,我们使用 goreleaser 构建二进制文件,因此您可以直接下载二进制文件 从 [发行版](https://github.com/aldinokemal/go-whatsapp-web-multidevice/releases/latest) - `v8` - **多设备支持**:现在可以在单个服务器实例中同时连接和管理多个 WhatsApp 账户 - **新设备管理 API**:`/devices` 下提供的新端点用于管理多个设备 - **设备范围限制**:所有设备范围的 REST API 调用现在需要以下之一: - `X-Device-Id` 标头,或 - `device_id` 查询参数 - 如果只注册了一个设备,它将被用作默认设备 - **WebSocket 设备范围**:连接到 `/ws?device_id=` 以将 WebSocket 限制到特定设备 - **Webhook 负载变更**:所有 Webhook 负载现在都包含一个顶级 `device_id` 字段,用于标识哪个 设备接收了事件: ```json { "event": "message", "device_id": "628123456789@s.whatsapp.net", "payload": { ... } } ``` ## 功能 - 通过 HTTP API 发送 WhatsApp 消息,详见 [docs/openapi.yml](./docs/openapi.yaml) - **MCP(模型上下文协议)服务器支持** - 使用标准化协议与 AI 代理和工具集成 - 提及某人 - `@phoneNumber` - 示例:`Hello @628974812XXXX, @628974812XXXX` - **幽灵提及(提及所有人)** - 在不显示消息中的 `@phone` 的情况下提及群组成员 - 在 `mentions` 字段中传递电话号码以提及用户而不显示可见的 `@` - 使用特殊关键字 `@everyone` 自动提及所有群组成员 - 发送消息模态框中提供 UI 复选框(用于群组) - 发布 WhatsApp 状态 - **发送贴纸** - 自动将图像转换为 WebP 贴纸格式 - 支持 JPG、JPEG、PNG、WebP 和 GIF 格式 - 自动调整为 512x512 像素 - 为 PNG 图像保留透明度 - **动画 WebP 贴纸** 受支持,但必须满足 WhatsApp 要求: - 必须正好为 **512x512 像素** - 文件大小必须小于 **500KB** - 时长最长 **10 秒** - 如果动画贴纸不满足这些要求,请在上传前使用 [ezgif.com](https://ezgif.com/resize) 等工具调整大小 - 压缩图像后再发送 - 压缩视频后再发送 - 将操作系统名称更改为您的应用程序(这是通过移动设备连接时的设备名称) - `--os=Chrome` 或 `--os=MyApplication` - 基本认证(支持多凭证) - `--basic-auth=kemal:secret,toni:password,userName:secretPassword`,或可简化为 - `-b=kemal:secret,toni:password,userName:secretPassword` - 子路径部署支持 - `--base-path="/gowa"`(允许在 `/gowa` 这样的特定路径下部署) - 可自定义端口和调试模式 - `--port 8000` - `--debug true` - 自动回复消息 - `--autoreply="Don't reply this message"` - 自动标记已读 incoming 消息 - `--auto-mark-read=true`(自动将 incoming 消息标记为已读) - 自动下载 incoming 消息中的媒体 - `--auto-download-media=false`(禁用自动媒体下载,默认为 `true`) - 自动拒绝 incoming 通话 - `--auto-reject-call=true` 或 `WHATSAPP_AUTO_REJECT_CALL=true`(请参阅 [Webhook Payload](./docs/webhook-payload.md#call-events) 了解通话事件) - 连接时可配置的在线状态 - `--presence-on-connect=unavailable` 或 `WHATSAPP_PRESENCE_ON_CONNECT=unavailable` - `available` - 标记为在线(抑制电话通知) - `unavailable` - 注册推送名称而不上线(默认,保留电话通知) - `none` - 完全跳过在线状态(推送名称不会被注册,联系人可能看到“-”作为名称) - incoming 消息的 Webhook - `--webhook="http://yourwebhook.site/handler"`,或可简化为 - `-w="http://yourwebhook.site/handler"` - 详细信息请参见 [Webhook Payload 文档](./docs/webhook-payload.md) - Webhook 密钥 我们的 Webhook 将使用 HMAC 头和默认密钥 `secret` 发送给您。 您可以通过以下选项修改此设置: - `--webhook-secret="secret"` - **Webhook Payload 文档** 有关详细的 Webhook 负载模式、安全实现和集成示例, 请参见 [Webhook Payload 文档](./docs/webhook-payload.md) - **Webhook 事件过滤** 您可以使用以下方式过滤要转发到 Webhook 的事件: - `--webhook-events="message,message.ack"`(逗号分隔列表) - 或环境变量:`WHATSAPP_WEBHOOK_EVENTS=message,message.ack` **可用的 Webhook 事件:** | 事件 | 描述 | |------|------| | `message` | 文本、媒体、联系人、位置消息 | | `message.reaction` | 消息的 emoji 反应 | | `message.revoked` | 已删除/撤回的消息 | | `message.edited` | 已编辑的消息 | | `message.ack` | 投递和已读回执 | | `message.deleted` | 用户删除的消息 | | `group.participants` | 群组成员加入/离开/提升/降级事件 | | `group.joined` | 您被加入群组 | | `newsletter.joined` | 您订阅了新闻通讯/频道 | | `newsletter.left` | 您退订了新闻通讯 | | `newsletter.message` | 新闻频道中发布的新消息 | | `newsletter.mute` | 新闻通讯静音设置变更 | | `call.offer` | 收到来电 | 如果未配置(为空),则转发所有事件。 - **Webhook TLS 配置** 如果在使用 Webhook 时遇到 TLS 证书验证错误(例如使用 Cloudflare 隧道或自签名证书): tls: failed to verify certificate: x509: certificate signed by unknown authority 您可以通过以下方式禁用 TLS 证书验证: - `--webhook-insecure-skip-verify=true` - 或环境变量:`WHATSAPP_WEBHOOK_INSECURE_SKIP_VERIFY=true` **安全警告**:此选项会禁用 TLS 证书验证,仅应用于: - 开发/测试环境 - Cloudflare 隧道(提供其自身的安全层) - 内部网络(使用自签名证书) **对于生产环境**,强烈建议使用正确的 SSL 证书(例如 Let's Encrypt) 而不是禁用验证。 ## 配置 您可以使用命令行标志(上述所示)或环境变量来配置应用程序。配置可以按三种方式设置(优先级顺序): 1. 命令行标志(最高优先级) 2. 环境变量 3. `.env` 文件(最低优先级) ### 环境变量 您可以使用环境变量来配置应用程序。配置可以按三种方式设置(按 优先级顺序): 1. 命令行标志(最高优先级) 2. 环境变量 3. `.env` 文件(最低优先级) 要使用环境变量: 1. 将 `.env.example` 复制到项目根目录的 `.env`(`cp src/.env.example src/.env`) 2. 根据需要修改 `.env` 中的值 3. 或将相同的变量设置为系统环境变量 #### 可用环境变量 | 变量 | 描述 | 默认值 | 示例 | |------|------|--------|------| | `APP_PORT` | 应用程序端口 | `3000` | `APP_PORT=8080` | | `APP_HOST` | 绑定服务器的主机地址 | `0.0.0.0` | `APP_HOST=127.0.0.1` | | `APP_DEBUG` | 启用调试日志 | `false` | `APP_DEBUG=true` | | `APP_OS` | 操作系统名称(WhatsApp 中的设备名称) | `Chrome` | `APP_OS=MyApp` | | `APP_BASIC_AUTH` | 基本认证凭据 | - | `APP_BASIC_AUTH=user1:pass1,user2:pass2` | | `APP_BASE_PATH` | 子路径部署的基础路径 | - | `APP_BASE_PATH=/gowa` | | `APP_TRUSTED_PROXIES` | 反向代理的可信 IP 范围 | - | `APP_TRUSTED_PROXIES=0.0.0.0/0` | | `DB_URI` | 数据库连接 URI | `file:storages/whatsapp.db?_foreign_keys=on` | `DB_URI=postgres://user:pass@host/db` | | `WHATSAPP_AUTO_REPLY` | 自动回复消息 | - | `WHATSAPP_AUTO_REPLY="Auto reply message"` | | `WHATSAPP_AUTO_MARK_READ` | 自动标记 incoming 消息为已读 | `false` | `WHATSAPP_AUTO_MARK_READ=true` | | `WHATSAPP_AUTO_DOWNLOAD_MEDIA` | 自动下载 incoming 消息中的媒体 | `true` | `WHATSAPP_AUTO_DOWNLOAD_MEDIA=false` | | `WHATSAPP_WEBHOOK` | 事件 Webhook URL(逗号分隔) | - | `WHATSAPP_WEBHOOK=https://webhook.site/xxx` | | `WHATSAPP_WEBHOOK_SECRET` | Webhook 验证密钥 | `secret` | `WHATSAPP_WEBHOOK_SECRET=super-secret-key` | | `WHATSAPP_WEBHOOK_INSECURE_SKIP_VERIFY` | 跳过 Webhook 的 TLS 验证(不安全) | `false` | `WHATSAPP_WEBHOOK_INSECURE_SKIP_VERIFY=true` | | `WHATSAPP_WEBHOOK_EVENTS` | 要转发的事件白名单(逗号分隔,空白 = 全部) | - | `WHATSAPP_WEBHOOK_EVENTS=message,message.ack` | | `WHATSAPP_ACCOUNT_VALIDATION` | 启用账户验证 | `true` | `WHATSAPP_ACCOUNT_VALIDATION=false` | | `WHATSAPP_PRESENCE_ON_CONNECT` | 连接时的在线状态:`available`、`unavailable` 或 `none` | `unavailable` | `WHATSAPP_PRESENCE_ON_CONNECT=unavailable` | | `CHATWOOT_ENABLED` | 启用 Chatwoot 集成 | `false` | `CHATWOOT_ENABLED=true` | | `CHATWOOT_URL` | Chatwoot 实例 URL | - | `CHATWOOT_URL=https://app.chatwoot.com` | | `CHATWOOT_API_TOKEN` | Chatwoot API 访问令牌 | - | `CHATWOOT_API_TOKEN=your-api-token` | | `CHATWOOT_ACCOUNT_ID` | Chatwoot 账户 ID | - | `CHATWOOT_ACCOUNT_ID=12345` | | `CHATWOOT_INBOX_ID` | Chatwoot 收件箱 ID | - | `CHATWOOT_INBOX_ID=67890` | | `CHATWOOT_DEVICE_ID` | WhatsApp 设备 ID(多设备设置) | - | `CHATWOOT_DEVICE_ID=628xxx@s.whatsapp.net` | | `CHATWOOT_IMPORT_MESSAGES` | 启用消息历史同步到 Chatwoot | `false` | `CHATWOOT_IMPORT_MESSAGES=true` | | `CHATWOOT_DAYS_LIMIT_IMPORT_MESSAGES` | 要导入的历史天数 | `3` | `CHATWOOT_DAYS_LIMIT_IMPORT_MESSAGES=7` | **文档:** - 有关详细的 Webhook 负载模式、安全实现和集成示例,请参见 [Webhook Payload 文档](./docs/webhook-payload.md) - 有关全面的 Chatwoot 集成指南,请参见 [Chatwoot Integration 文档](./docs/chatwoot.md) 注意:命令行标志将覆盖环境变量或 `.env` 文件中的任何值。 - 有关更多命令,请使用 `./whatsapp --help` ## 系统要求 ### 系统要求 - **Go 1.24.0 或更高版本**(用于从源代码构建) - **FFmpeg**(用于媒体处理) ### 平台支持 - Linux(x86_64、ARM64) - macOS(Intel、Apple Silicon) - Windows(x86_64)- 推荐使用 [WSL](https://docs.microsoft.com/en-us/windows/wsl/install) ### 依赖项(无 Docker) - Mac OS: - `brew install ffmpeg webp` - `export CGO_CFLAGS_ALLOW="-Xpreprocessor"` - Linux: - `sudo apt update` - `sudo apt install ffmpeg webp` - Windows(不推荐,优先使用 [WSL](https://docs.microsoft.com/en-us/windows/wsl/install)): - 安装 ffmpeg:[在此下载](https://www.ffmpeg.org/download.html#build-windows) - 安装 libwebp:[在此下载](https://developers.google.com/speed/webp/download)(解压并将 `bin` 文件夹添加到 PATH) - 将两者都添加到 [环境变量](https://www.google.com/search?q=windows+add+to+environment+path) ## 使用方法 ### 基础用法 1. 克隆此仓库:`git clone https://github.com/aldinokemal/go-whatsapp-web-multidevice` 2. 打开克隆的文件夹(通过 cmd/终端) 3. 运行 `cd src` 4. 运行 `go run . rest`(用于 REST API 模式) 5. 打开 `http://localhost:3000` ### Docker(无需单独安装) 1. 克隆此仓库:`git clone https://github.com/aldinokemal/go-whatsapp-web-multidevice` 2. 打开克隆的文件夹(通过 cmd/终端) 3. 运行 `docker-compose up -d --build` 4. 打开 `http://localhost:3000` ### 构建自己的二进制文件 1. 克隆此仓库 `git clone https://github.com/aldinokemal/go-whatsapp-web-multidevice` 2. 打开克隆的文件夹(通过 cmd/终端) 3. 运行 `cd src` 4. 运行 1. Linux & MacOS:`go build -o whatsapp` 2. Windows(CMD / PowerShell):`go build -o whatsapp.exe` 5. 运行 1. Linux & MacOS:`./whatsapp rest`(用于 REST API 模式) 1. 运行 `./whatsapp --help` 查看更多标志 2. Windows:`.\whatsapp.exe rest`(用于 REST API 模式) 1. 运行 `.\whatsapp.exe --help` 查看更多标志 6. 在浏览器中打开 `http://localhost:3000` ### MCP 服务器(模型上下文协议) 该应用程序也可以作为 MCP 服务器运行,允许 AI 代理和工具通过标准化协议与 WhatsApp 交互。 1. 克隆此仓库 `git clone https://github.com/aldinokemal/go-whatsapp-web-multidevice` 2. 打开克隆的文件夹(通过 cmd/终端) 3. 运行 `cd src` 4. 运行 `go run .cp` 或构建二进制文件后运行 `./whatsapp mcp` 5. MCP 服务器将在 `http://localhost:8080` 启动(默认) #### MCP 服务器选项 - `--host localhost` - 设置 MCP 服务器主机(默认:localhost) - `--port 8080` - 设置 MCP 服务器端口(默认:8080) #### 可用的 MCP 工具 WhatsApp MCP 服务器提供了一组全面的工具,供 AI 代理通过标准化协议与 WhatsApp 交互。以下是可用工具的完整列表: ##### **📱 连接管理** - `whatsapp_connection_status` - 检查 WhatsApp 客户端是否已连接并登录 - `whatsapp_login_qr` - 启动基于 QR 码的登录流程并输出图像 - `whatsapp_login_with_code` - 使用电话号码生成配对码以进行多设备登录 - `whatsapp_logout` - 注销当前 WhatsApp 会话 - `whatsapp_reconnect` - 尝试使用存储的会话重新连接 WhatsApp ##### **💬 消息与通信** - `whatsapp_send_text` - 发送支持回复和转发的文本消息 - `whatsapp_send_contact` - 发送包含姓名和电话号码的名片 - `whatsapp_send_link` - 发送带有自定义标题的链接 - `whatsapp_send_location` - 发送经纬度坐标 - `whatsapp_send_image` - 发送图像(支持压缩和仅查看一次) - `whatsapp_send_sticker` - 发送贴纸(自动转换为 WebP 格式,支持 JPG/PNG/GIF) ##### **📋 聊天与联系人管理** - `whatsapp_list_contacts` - 获取账户中的所有联系人 - `whatsapp_list_chats` - 获取最近聊天(支持分页和搜索过滤) - `whatsapp_get_chat_messages` - 获取特定聊天的消息(支持时间和媒体过滤) - `whatsapp_download_message_media` - 下载消息中的图片/视频 - `whatsapp_archive_chat` - 归档或取消归档聊天会话 ##### **👥 群组管理** - `whatsapp_group_create` - 创建新群组(可包含初始成员) - `whatsapp_group_join_via_link` - 通过邀请链接加入群组 - `whatsapp_group_leave` - 离开群组 - `whatsapp_group_participants` - 列出群组所有成员 - `whatsapp_group_manage_participants` - 添加、移除、提升或降级群组成员 - `whatsapp_group_invite_link` - 获取或重置群组邀请链接 - `whatsapp_group_info` - 获取群组详细信息 - `whatsapp_group_set_name` - 更新群组显示名称 - `whatsapp_group_set_topic` - 更新群组描述/主题 - `whatsapp_group_set_locked` - 切换仅管理员可编辑群组信息 - `whatsapp_group_set_announce` - 切换仅群组发布模式 - `whatsapp_group_join_requests` - 列出待处理的加入请求 - `whatsapp_group_manage_join_requests` - 批准或拒绝加入请求 #### MCP 端点 - SSE 端点:`http://localhost:8080/sse` - 消息端点:`http://localhost:8080/message` ### MCP 配置 请确保 MCP 服务器正在运行:`./whatsapp mcp` 对于支持 SSE 的 AI 工具(如 Cursor),请添加以下配置: ``` { "mcpServers": { "whatsapp": { "url": "http://localhost:8080/sse" } } } ``` ### 生产模式 REST(Docker) 使用 Docker Hub: ``` docker run --detach --publish=3000:3000 --name=whatsapp --restart=always --volume=$(docker volume create --name=whatsapp):/app/storages aldinokemal2104/go-whatsapp-web-multidevice rest --autoreply="Dont't reply this message please" ``` 使用 GitHub 容器注册表: ``` docker run --detach --publish=3000:3000 --name=whatsapp --restart=always --volume=$(docker volume create --name=whatsapp):/app/storages ghcr.io/aldinokemal/go-whatsapp-web-multidevice rest --autoreply="Dont't reply this message please" ``` ### 生产模式 REST(Docker Compose) 创建 `docker-compose.yml` 文件并使用以下配置: 使用 Docker Hub: ``` services: whatsapp: image: aldinokemal2104/go-whatsapp-web-multidevice container_name: whatsapp restart: always ports: - "3000:3000" volumes: - whatsapp:/app/storages command: - rest - --basic-auth=admin:admin - --port=3000 - --debug=true - --os=Chrome - --account-validation=false volumes: whatsapp: ``` 使用 GitHub 容器注册表: ``` services: whatsapp: image: ghcr.io/aldinokemal/go-whatsapp-web-multidevice container_name: whatsapp restart: always ports: - "3000:3000" volumes: - whatsapp:/app/storages command: - rest - --basic-auth=admin:admin - --port=3000 - --debug=true - --os=Chrome - --account-validation=false volumes: whatsapp: ``` 或使用环境文件(Docker Hub): ``` services: whatsapp: image: aldinokemal2104/go-whatsapp-web-multidevice container_name: whatsapp restart: always ports: - "3000:3000" volumes: - whatsapp:/app/storages environment: - APP_BASIC_AUTH=admin:admin - APP_PORT=3000 - APP_DEBUG=true - APP_OS=Chrome - APP_ACCOUNT_VALIDATION=false volumes: whatsapp: ``` 或使用环境文件(GitHub 容器注册表): ``` services: whatsapp: image: ghcr.io/aldinokemal/go-whatsapp-web-multidevice container_name: whatsapp restart: always ports: - "3000:3000" volumes: - whatsapp:/app/storages environment: - APP_BASIC_AUTH=admin:admin - APP_PORT=3000 - APP_DEBUG=true - APP_OS=Chrome - APP_ACCOUNT_VALIDATION=false volumes: whatsapp: ``` ### 生产模式(二进制文件) 您可以 fork 或编辑此源代码! ## 当前 API ### MCP(模型上下文协议)API - MCP 服务器提供标准化的工具,供 AI 代理与 WhatsApp 交互 - 支持 Server-Sent Events(SSE)传输 - 可用工具:`whatsapp_send_text`、`whatsapp_send_contact`、`whatsapp_send_link`、`whatsapp_send_location` - 兼容 MCP 能力的 AI 工具和代理 ### HTTP REST API - 详见 [docs/openapi.yml](./docs/openapi.yaml) 获取完整的 API 规范 - 使用 [SwaggerEditor](https://editor.swagger.io) 可视化 API - 使用 [openapi-generator](https://openapi-generator.tech/#try) 生成 HTTP 客户端 | 功能 | 菜单 | 方法 | URL | |------|------|------|-----| | ✅ | 列出设备 | GET | /devices | | ✅ | 添加设备 | POST | /devices | | ✅ | 获取设备信息 | GET | /devices/:device_id | | ✅ | 移除设备 | DELETE | /devices/:device_id | | ✅ | 登录设备(QR) | GET | /devices/:device_id/login | | ✅ | 登录设备(Code) | POST | /devices/:device_id/login/code | | ✅ | 注销设备 | POST | /devices/:device_id/logout | | ✅ | 重新连接设备 | POST | /devices/:device_id/reconnect | | ✅ | 获取设备状态 | GET | /devices/:device_id/status | | ✅ | 使用扫描 QR 登录 | GET | /app/login | | ✅ | 使用配对码登录 | GET | /app/login-with-code | | ✅ | 注销 | GET | /app/logout | | ✅ | 重新连接 | GET | /app/reconnect | | ✅ | 设备列表 | GET | /app/devices | | ✅ | 连接状态 | GET | /app/status | | ✅ | 用户信息 | GET | /user/info | | ✅ | 用户头像 | GET | /user/avatar | | ✅ | 修改用户头像 | POST | /user/avatar | | ✅ | 修改用户推送名称 | POST | /user/pushname | | ✅ | 我的群组* | GET | /user/my/groups | | ✅ | 我的新闻通讯 | GET | /user/my/newsletters | | ✅ | 用户隐私设置 | GET | /user/my/privacy | | ✅ | 我的联系人 | GET | /user/my/contacts | | ✅ | 用户检查 | GET | /user/check | | ✅ | 商业资料 | GET | /user/business-profile | | ✅ | 发送消息 | POST | /send/message | | ✅ | 发送图片 | POST | /send/image | | ✅ | 发送音频 | POST | /send/audio | | ✅ | 发送文件 | POST | /send/file | | ✅ | 发送视频 | POST | /send/video | | ✅ | 发送贴纸 | POST | /send/sticker | | ✅ | 发送联系人 | POST | /send/contact | | ✅ | 发送链接 | POST | /send/link | | ✅ | 发送位置 | POST | /send/location | | ✅ | 发送投票/投票 | POST | /send/poll | | ✅ | 发送在线状态 | POST | /send/presence | | ✅ | 发送聊天输入指示器 | POST | /send/chat-presence | | ✅ | 撤回消息 | POST | /message/:message_id/revoke | | ✅ | 反应消息 | POST | /message/:message_id/reaction | | ✅ | 删除消息 | POST | /message/:message_id/delete | | ✅ | 编辑消息 | POST | /message/:message_id/update | | ✅ | 标记消息为已读(DM) | POST | /message/:message_id/read | | ✅ | 收藏消息 | POST | /message/:message_id/star | | ✅ | 取消收藏消息 | POST | /message/:message_id/unstar | | ✅ | 下载消息媒体 | GET | /message/:message_id/download | | ✅ | 使用链接加入群组 | POST | /group/join-with-link | | ✅ | 从链接获取群组信息 | GET | /group/info-from | | ✅ | 群组信息 | GET | /group/info | | ✅ | 离开群组 | POST | /group/leave | | ✅ | 创建群组 | POST | /group | | ✅ | 列出群组成员 | GET | /group/participants | | ✅ | 添加群组成员 | POST | /group/participants | | ✅ | 移除群组成员 | POST | /group/participants/remove | | ✅ | 提升群组成员 | POST | /group/participants/promote | | ✅ | 降级群组成员 | POST | /group/participants/demote | | ✅ | 导出群组成员(CSV) | GET | /group/participants/export | | ✅ | 列出群组加入请求 | GET | /group/participant-requests | | ✅ | 批准群组加入请求 | POST | /group/participant-requests/approve | | ✅ | 拒绝群组加入请求 | POST | /group/participant-requests/reject | | ✅ | 设置群组头像 | POST | /group/photo | | ✅ | 设置群组名称 | POST | /group/name | | ✅ | 设置群组锁定状态 | POST | /group/locked | | ✅ | 设置群组公告 | POST | /group/announce | | ✅ | 设置群组主题 | POST | /group/topic | | ✅ | 获取群组邀请链接 | GET | /group/invite-link | | ✅ | 取消订阅新闻通讯 | POST | /newsletter/unfollow | | ✅ | 获取聊天列表 | GET | /chats | | ✅ | 获取聊天消息 | GET | /chat/:chat_jid/messages | | ✅ | 标记聊天 | POST | /chat/:chat_jid/label | | ✅ | 置顶聊天 | POST | /chat/:chat_jid/pin | | ✅ | 归档聊天 | POST | /chat/:chat_jid/archive | | ✅ | 设置消失消息 | POST | /chat/:chat_jid/disappearing | ``` ✅ = Available ❌ = Not Available Yet * = Has known limitations (see notes below) ``` **说明:** - `*我的群组`:由于 WhatsApp 协议限制,最多返回 500 个群组。此限制由 WhatsApp 服务器强制执行,而非本应用。请参见 [whatsmeow 源码](https://github.com/tulir/whatsmeow/blob/main/group.go) 获取详细信息。 ## 用户界面 ### MCP UI - 设置 MCP(在 Cursor 中测试) ![Setup MCP](https://i.ibb.co/vCg4zNWt/mcpsetup.png) - 测试 MCP ![Test MCP](https://i.ibb.co/B2LX38DW/mcptest.png) - 成功设置 MCP ![Success MCP](https://i.ibb.co/1fCx0Myc/mcpsuccess.png) ### HTTP REST API UI | 描述 | 图像 | |------|------| | 首页 | ![首页](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8e429fb05e110204.png) | | 登录 | ![登录](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a76082eee7110205.png) | | 使用 Code 登录 | ![使用 Code 登录](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d25bc69fc3110207.png) | | 发送消息 | ![发送消息](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d0421e1296110208.png) | | 发送图片 | ![发送图片](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/580ec637be110210.png) | | 发送文件 | ![发送文件](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9ae9deb147110210.png) | | 发送视频 | ![发送视频](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4b6ddab707110211.png) | | 发送贴纸 | ![发送贴纸](https://raw.githubusercontent.com/aldinokemal/go-whatsapp-web-multidevice/main/gallery/send-sticker.png) | | 发送联系人 | ![发送联系人](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/710579f6ab110235.png) | | 发送位置 | ![发送位置](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/09d09d520a110235.png) | | 发送音频 | ![发送音频](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/f183279d88110236.png) | | 发送投票 | ![发送投票](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/061bfa9f07110237.png) | | 发送在线状态 | ![发送在线状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/801a2784f7110237.png) | | 发送链接 | ![发送链接](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/89cb2755d9110238.png) | | 我的群组 | ![我的群组](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/25ab7cc1f8110239.png) | | 从链接获取群组信息 | ![从链接获取群组信息](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/e271d7ef5f110239.png) | | 创建群组 | ![创建群组](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/85181b8a13110240.png) | | 通过链接加入群组 | ![通过链接加入群组](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d55674363d110241.png) | | 管理参与者 | ![管理参与者](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/0d5841d16d110242.png) | | 我的新闻通讯 | ![我的新闻通讯](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/b4d47a9878110243.png) | | 我的联系人 | ![我的联系人](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/2e91c39dbc110243.png) | | 商业资料 | ![商业资料](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/39839ceeb6110244.png) | ### Mac OS 注意事项 - 如果遇到错误(pkg-config --cflags: -Xpreprocessor 无效),请执行: `export CGO_CFLAGS_ALLOW="-Xpreprocessor"` ## 重要提示 - 本项目为未授权项目,与 WhatsApp 无关。 - 请使用官方 WhatsApp API 以避免任何问题。 - 我们仅支持运行 MCP 或 REST API,这是 whatsmeow 库的限制。独立的 MCP 支持将在 未来提供。
标签:AMD架构, ARM架构, Chatwoot, DNS解析, Docker, EVTX分析, Golang, Go微信, MCP, n8n集成, REST API, UI支持, Webhooks, WebSocket, WhatsApp API, 依赖分析, 内存高效, 多设备, 多账号, 安全编程, 安全防御评估, 开源框架, 开源项目, 持续集成, 日志审计, 网络测绘, 设备管理API, 请求拦截