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 指南

🤖 妙趣AI - 让 AI 更有趣

发现更多 AI 工具、教程和最佳实践

探索更多 →