
wa-automate-nodejs
用 Node.js 快速搭建 WhatsApp 聊天机器人,自动收发消息
wa-automate-nodejs 是一个基于 TypeScript 的 WhatsApp 自动化框架,通过封装 WhatsApp Web 协议,让开发者用 Node.js 快速构建聊天机器人和自动化工作流。它解决了直接操作 WhatsApp 网页版复杂、易断线、难维护的问题,提供稳定的会话保持、消息收发、群组管理、媒体文件处理等能力。核心功能包括:一键启动带二维码扫描的客户端、事件驱动的消息监听、发送文本/图片/文件/位置、群组创建与成员管理、自动回复与关键词触发、Webhook 与 REST API 集成,以及多设备支持。项目还内置了反封禁策略和错误重连机制,适合需要将 WhatsApp 接入客服、营销或通知系统的场景。社区活跃,文档较全,是 Node.js 生态中较成熟的 WhatsApp 自动化方案之一。
项目数据
使用教程
环境要求
- Node.js 环境(可直接运行 npx 命令;参与仓库开发需 Node.js >=22.21.1)
- 一个可登录的 WhatsApp 账号(首次启动需扫码或使用链接码登录)
- 使用 Docker 方式需已安装 Docker
- 参与 monorepo 开发需 pnpm 11.15.1(工具链由 mise.toml 固定)
安装与启动步骤
-
1选择合适版本
v5 仍是 alpha 版本可能有问题,成熟的 v4 生产系统请留在 4.76.0,仅在测试或贡献 v5 时使用 alpha。
-
2启动 Easy API
运行 CLI 会启动 Easy API 实例并触发首次认证流程,同时为当前会话暴露交互式文档。
npx @open-wa/wa-automate@alpha --port 8080 -
3完成登录认证
按运行时提示认证:扫描终端打印的二维码,或改用适合你的链接码登录方式。
-
4打开接口文档验证
会话连接后访问 api-docs 页面,能看到交互文档即说明会话已上线、API 可访问。
-
5多会话与鉴权
若要跑多个账号,尽早指定 session-id;对暴露到本机之外的 API 建议加 api-key 保护。
npx @open-wa/wa-automate@alpha --session-id sales --port 8081 -
6用配置文件启动
同目录下新建 wa.config.mjs,写入 apiKey、port 与 mcp 配置,再通过 --config 参数加载启动。
WA_API_KEY="your-secure-key" npx @open-wa/wa-automate@alpha --config ./wa.config.mjs -
7Docker 方式运行
拉取 openwa/wa-automate 镜像并映射 8080 端口,加 --init 让初始化进程清理僵尸进程。
docker run -p 8080:8080 --init openwa/wa-automate -
8嵌入式运行时
需要自己掌控浏览器驱动与生命周期时,安装核心包与驱动包,在代码中调用 createClient。
npm install @open-wa/wa-automate @open-wa/driver-puppeteer
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
sessionId | 否 | 会话标识,可能运行多个账号时建议尽早设置 | sales |
apiKey | 否 | 保护 API,暴露到本机之外前应配置 | your-secure-key |
port | 否 | Easy API 监听端口 | 8080 |
mcp.enabled | 否 | 启用 MCP,v5 只能通过配置文件开启 | true |
mcp.path | 否 | MCP 服务挂载路径 | /mcp |
headless | 否 | 嵌入式运行时是否无头启动浏览器 | true |
如何确认成功
访问 http://localhost:8080/api-docs/ ,页面正常显示交互文档即表示会话已连接、API 可访问。
常见问题
Q:该用 v5 还是 v4?
A:v5 目前是 5.0.0-alpha.0,仍可能出问题。生产系统请留在稳定版 4.76.0,只有在测试或为 v5 做贡献时才用 alpha。
Q:CLI 上的 --webhook 和 --mcp 参数好用吗?
A:v5 alpha 会解析 --webhook 但会警告未恢复 CLI 注册能力,该参数不会启用投递;--mcp 在当前源码中不被解析,两者都需要在 wa.config.* 中配置。
Q:怎样给 API 加鉴权?
A:启动时加 --api-key "your-secure-key",或在 wa.config.mjs 中设置 apiKey,再对暴露到本机外的实例使用。
Q:Docker 运行时怎么固定版本?
A:通过环境变量 W_A_V 指定库版本,例如 docker run 时加 -e W_A_V=4.42.1。
Q:怎么跑多个 WhatsApp 账号?
A:为每个实例指定不同的 --session-id,并注意使用不同端口,例如 sales 用 8081。
注意事项
- 本项目为非官方项目,与 WhatsApp、Meta 无关联,使用风险自负,使用即表示同意其服务条款。
- v5 为 alpha 版本,建议先在可丢弃的环境中测试,再接入重要系统。
- Docker 方式适合本地测试或一次性的首次运行,除非同时做好会话持久化规划。
- 旧文档或示例提到的部分参数可能已过时,请以你实际运行版本验证过的参数集为准。
核心亮点
- 封装了 WhatsApp Web 协议,提供简洁的 TypeScript API,降低开发门槛
- 支持事件监听、Webhook 和 REST API,方便与现有系统集成
- 内置会话保持、自动重连和反封禁策略,提升稳定性
不足之处
- 依赖 WhatsApp Web 非官方接口,存在账号被封禁的风险
- 部分高级功能需要付费授权或商业许可
适用场景
- 电商客服自动回复与订单通知
- 社群运营中自动欢迎新成员、关键词触发回复
- 企业内部通过 WhatsApp 发送告警和审批提醒
替代项目
Baileys、whatsapp-web.js
项目介绍
上一篇:EVE-Online-Bot
下一篇:oh-my-taiyiforge
同类项目推荐
n8n
开源
拖拽搭建自动化流程,轻松接入 AI 与 400+ 应用,搞定重复工作。
Fair-code workflow automation platform with native AI capabilities. Combine visual b···
robotcode
开源
让 Robot Framework 拥有现代 IDE 体验,调试、补全、运行一气呵成。
Open Source Toolkit for Robot Framework, providing Language Server Protocol support,···
puppeteer
开源
用 JavaScript 轻松操控无头浏览器,搞定自动化测试与网页抓取。
JavaScript API for Chrome and Firefox
customermates
开源
比 Pipedrive 直观 10 倍的现代开源 CRM,轻松管理客户与自动化流程。
Building a modern alternative to Pipedrive that is 10x more intuitive.