OpenClaw WhatsApp Bot 搭建指南:让 Agent 回复 WhatsApp 消息
📅 2026-06-15🏷️ 通道配置⏱️ 阅读约 8 分钟✍️ 妙趣AI
📋 前置条件
- Meta Business 账号 - 需要通过 Meta 验证
- WhatsApp Business 号码 - 已注册的商业号码
- 公网可访问的服务器 - 用于接收 Webhook 回调
- OpenClaw v2026.6.8+ - WhatsApp 通道在此版本引入
WhatsApp Business API 有严格的消息模板审核流程。非模板消息只能在 24 小时会话窗口内发送。
🔧 Meta Business API 配置
Step 1: 创建 Meta App
# 前往 https://developers.facebook.com/
# 1. 创建新 App → 选择 "Business" 类型
# 2. 添加 "WhatsApp" 产品
# 3. 获取 Phone Number ID 和 Access Token
Step 2: 获取凭证
# 在 Meta App Dashboard 中找到:
# - Phone Number ID: 1234567890
# - Access Token: EAAxxxxxxxxxxxxxxx
# - Webhook Verify Token: your_custom_token
Step 3: 配置 Webhook
# 在 Meta App → WhatsApp → Configuration → Webhook
# Callback URL: https://your-domain.com/webhook/whatsapp
# Verify Token: your_custom_token
# Subscribe to: messages
⚙️ OpenClaw 配置
# config.yaml
channels:
- id: whatsapp
type: whatsapp
provider: meta
phoneNumberId: $WHATSAPP_PHONE_ID
accessToken: $WHATSAPP_ACCESS_TOKEN
webhookVerifyToken: $WHATSAPP_WEBHOOK_TOKEN
# 可选:限制允许的用户
allowedUsers:
- "8613800138000" # 手机号(带国际区号)
# 可选:消息模板
templates:
greeting: "你好!我是妙趣AI,有什么可以帮你的?"
error: "抱歉,处理出错了,请稍后再试。"
环境变量
export WHATSAPP_PHONE_ID="1234567890"
export WHATSAPP_ACCESS_TOKEN="EAAxxxxxxxxxxxxxxx"
export WHATSAPP_WEBHOOK_TOKEN="your_custom_token"
🌐 Webhook 设置
Nginx 反向代理
# /etc/nginx/sites-available/whatsapp-webhook
server {
listen 443 ssl;
server_name your-domain.com;
location /webhook/whatsapp {
proxy_pass http://localhost:3000/webhook/whatsapp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
验证 Webhook
# 测试 Webhook 是否可达
curl -X GET "https://your-domain.com/webhook/whatsapp?hub.mode=subscribe&hub.verify_token=your_token&hub.challenge=test"
# 应返回: test
使用
openclaw doctor --channel whatsapp 自动验证 Webhook 配置是否正确。🔗 多通道统一管理
同一个 Agent 可以同时在多个通道运行:
# config.yaml
agents:
miaoquai:
channels: [feishu, discord, whatsapp, telegram]
model: glm-5.2
# 通道特定配置
channelConfig:
whatsapp:
maxMessageLength: 4096
sendReadReceipts: true
feishu:
maxMessageLength: 30000
discord:
maxMessageLength: 2000
消息路由
Agent 会根据用户所在的通道自动选择回复方式。上下文在所有通道间共享。
🏆 最佳实践与限制
最佳实践
- 消息模板 - 主动消息必须使用预审核的模板
- 24 小时窗口 - 用户发消息后 24 小时内可自由回复
- 速率限制 - WhatsApp 有严格的发送频率限制
- 媒体支持 - 支持图片、文档、音频,但有大小限制
已知限制
- 不支持群组消息(仅 1:1 对话)
- 消息长度限制 4096 字符
- 不支持 Markdown 格式(纯文本)
- 需要通过 Meta 审核才能发送主动消息
更多通道配置,请参考 多通道配置指南 和 Telegram Bot 指南。