Skip to content

把 Moltbot 接到 WhatsApp 上 ​

WhatsApp 的接入流程比 Telegram 复杂不少。Telegram 几分钟即可完成的配置,WhatsApp 可能需要一到两个小时。

不过,如果你的主要联系人都在 WhatsApp 上,这个时间投入是值得的。

为什么 WhatsApp 配置更复杂 ​

Telegram 创建 Bot 只需与 BotFather 对话。WhatsApp 则需要通过 WhatsApp Business API,由 Meta 统一管理,流程更为正式。

你需要准备:

  1. 一个 Meta 开发者账号
  2. 一个 Meta Business 应用
  3. 一个能接收短信的手机号(用于注册 WhatsApp Business)
  4. 配置 Webhook 接收消息推送

步骤虽多,逐一完成并不困难。

注册 Meta 开发者账号 ​

前往 developers.facebook.com 注册开发者账号。如果已有 Facebook 账号,登录后即可开通开发者身份。

注册过程中可能需要身份验证,按提示操作即可。

创建 Business 应用 ​

  1. 登录 Meta 开发者后台
  2. 点击「创建应用」
  3. 选择「Business」类型
  4. 填写应用名称
  5. 创建完成后,在应用面板中找到「WhatsApp」,点击「设置」

此时会获得一个测试用手机号和一个临时的 Access Token。

临时 Token 有效期为 24 小时。正式使用需要生成永久 Token,在「系统用户」中操作。这部分可参考 Meta 官方文档。

获取关键信息 ​

需要记录以下三项:

  • Phone Number ID — 在 WhatsApp 设置页面查看
  • Access Token — 上一步获取的
  • Webhook Verify Token — 自定义的字符串,用于后续 Webhook 配置

配置 Moltbot ​

bash
moltbot configure --section whatsapp

按提示填入上述三项信息。

也可以使用环境变量:

bash
export WHATSAPP_PHONE_NUMBER_ID=1234567890
export WHATSAPP_ACCESS_TOKEN=EAAxxxxxxxxxxxxx
export WHATSAPP_VERIFY_TOKEN=my_secret_verify_string

或者直接编辑配置文件:

yaml
# ~/.moltbot/config.yaml
channels:
  whatsapp:
    phoneNumberId: "1234567890"
    accessToken: "EAAxxxxxxxxxxxxx"
    verifyToken: "my_secret_verify_string"

配置 Webhook ​

WhatsApp 不支持长轮询,必须使用 Webhook,因此需要一个公网可访问的 HTTPS 地址。

如果没有服务器,可以使用 Cloudflare Tunnel:

bash
# 安装 cloudflared
brew install cloudflare/cloudflare/cloudflared

# 创建隧道(会生成一个公网 URL)
cloudflared tunnel --url http://localhost:3000

获取公网 URL 后,在 Meta 开发者后台的 WhatsApp 设置中填入 Webhook URL:

https://your-tunnel-url.trycloudflare.com/whatsapp/webhook

Verify Token 填写你之前自定义的字符串。

点击验证。如果 Moltbot 正在运行,验证应当通过。

启动和配对 ​

bash
moltbot start

用你的 WhatsApp 向该 Business 号码发送一条消息。终端会显示配对码,流程与 Telegram 一致:

bash
moltbot pairing approve whatsapp YOUR_CODE

配对完成。

需要注意的限制 ​

24 小时消息窗口。 WhatsApp Business API 规定:用户发送消息后,Bot 有 24 小时的回复窗口。超过 24 小时后,不能主动向用户发送消息(除非使用模板消息,那是另一套流程)。

对于即时对话场景影响不大,但如果需要 Moltbot 主动推送消息(如早间简报),需要额外配置模板消息。

测试号码限制。 Meta 提供的测试号码只能向最多 5 个预设号码发送消息。面向更多用户使用需要通过 Meta 的 Business 验证。

消息格式。 WhatsApp 支持的格式比 Telegram 少。部分 Markdown 语法无法渲染,代码块的显示效果也较为简陋。可以使用,但体验不如 Telegram。

Access Token 过期。 如果使用的是临时 Token,过期后 Bot 将无法正常工作。建议尽早在后台生成永久 Token。

渠道选择建议 ​

如果没有必须使用 WhatsApp 的需求,推荐优先接入 Telegram。配置简单、功能完整、无需 Business 验证。

如果确实需要 WhatsApp,按照上述步骤完成一次配置后,后续无需再次操作。

常见问题 ​

Webhook 验证失败?

检查以下三点:

  • Moltbot 是否正在运行
  • Webhook URL 是否可从公网访问
  • Verify Token 是否填写正确

收到消息但 Bot 不回复?

查看终端日志。大多数情况是 Access Token 过期或权限不足。

收到回复但格式混乱?

WhatsApp 的消息格式支持有限,Moltbot 会尽量适配,但部分复杂格式(如表格)可能显示不佳。目前暂无更好的解决方案。

本站为第三方教程站,与 Moltbot 官方无关