aldinokemal/go-whatsapp-web-multidevice
GitHub: aldinokemal/go-whatsapp-web-multidevice
一个支持多设备、REST 与 MCP 模式的 Go 语言 WhatsApp 网关,解决统一管理与自动化交互问题。
Stars: 3797 | Forks: 897

## Golang WhatsApp - 使用 Go 构建以实现高效内存使用



## 支持 `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 中测试)

- 测试 MCP

- 成功设置 MCP

### HTTP REST API UI
| 描述 | 图像 |
|------|------|
| 首页 |  |
| 登录 |  |
| 使用 Code 登录 |  |
| 发送消息 |  |
| 发送图片 |  |
| 发送文件 |  |
| 发送视频 |  |
| 发送贴纸 |  |
| 发送联系人 |  |
| 发送位置 |  |
| 发送音频 |  |
| 发送投票 |  |
| 发送在线状态 |  |
| 发送链接 |  |
| 我的群组 |  |
| 从链接获取群组信息 |  |
| 创建群组 |  |
| 通过链接加入群组 |  |
| 管理参与者 |  |
| 我的新闻通讯 |  |
| 我的联系人 |  |
| 商业资料 |  |
### 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, 请求拦截