MINARA
使用 Minara客户端与界面消息平台

WhatsApp

通过 Meta Cloud API 发送出站消息。需要企业账户,会话窗口严格,仅支持发送。

🟢 运行时就绪 直接调用 Meta Cloud API v21,无需 SDK。不支持流式编辑:Cloud API 的编辑窗口仅 15 分钟,且频率限制严格,复杂度不值得。该助手会缓冲 token,在最终确认时一次性发送。

功能说明

  • 从已验证的 Meta Business 号码向任意 WhatsApp 号码(E.164 格式)发送消息
  • 通过 channel 按消息指定收件人
  • 每条消息上限 4096 字符(与助手默认值一致)

前置条件

WhatsApp 的配置流程较为复杂,需要准备以下内容:

  1. Meta Business Portfoliobusiness.facebook.com
  2. 在该 Portfolio 下已验证的 WhatsApp Business 手机号码(通过短信或语音验证)
  3. 已添加 WhatsApp 产品的 Meta Developer Appdevelopers.facebook.com
  4. 若需向测试号码以外的用户正式发送消息,须在 Meta Business Suite 完成企业认证(通常需要数小时至数天)

如只是试用:Developer App 自带 5 个免费测试收件号码,在 WhatsApp 面板中通过短信验证即可使用。

配置步骤

1. 获取访问令牌

  1. 进入 developers.facebook.com,选择你的应用,依次点击 WhatsAppAPI Setup
  2. 初始测试可复制 Temporary access token(有效期 24 小时);长期使用请生成 System User access token:前往 business.facebook.comSettingsUsersSystem Users,新建用户后点击 Generate new token(权限范围:whatsapp_business_messaging + whatsapp_business_management

2. 获取手机号码 ID 和收件号码

  1. 在同一 API Setup 页面,From 下拉菜单显示业务手机号,其下方的数字 Phone number ID 即为 Minara 所需字段(而非 +... 格式的号码本身)
  2. To 栏添加收件人并通过短信验证,将 E.164 格式号码(如 +12025551234)填入 WHATSAPP_RECIPIENT

3. 配置 Minara

minara auth messaging add whatsapp

或直接编辑项目根目录的 .env 文件:

WHATSAPP_ACCESS_TOKEN=EAAxxx...
WHATSAPP_PHONE_NUMBER_ID=1234567890
WHATSAPP_RECIPIENT=+12025551234

4. 测试

minara auth messaging test whatsapp

24 小时会话窗口

这是所有人都会遇到的限制:

Meta 规定,企业只能在用户最后一条入站消息后 24 小时内向其发送自由格式消息。超出窗口期必须改用预审批模板消息

对于 Agent 告警来说,活跃对话期间没有问题;但对于无征兆通知(如隔夜 Autopilot 交易),则较为不便。以下是几种应对方式:

  1. 让用户在离开前向企业号码发送任意消息,该 ping 会重置 24 小时窗口
  2. 使用已审批的模板,在 Meta Business Suite 中注册告警模板(例如 {{1}} — {{2}} ({{3}}) triggered at {{4}});模板消息的发送不受窗口限制(每个模板单独设有频率限制)
  3. 主动推送告警改用其他服务商,如 Email、Telegram 或 Signal

Minara 目前仅支持纯文本发送,模板支持将在后续版本加入。

覆盖收件人

send_message({
  provider: "whatsapp",
  channel: "+12025559999",
  text: "Critical: position liquidation imminent",
})

覆盖号码必须已在 Meta Developer App 中验证(测试号码),或可由已验证的业务号码发送(正式号码)。

常见问题

"Recipient not in allowed list"

  • 当前处于测试层级,覆盖收件人不在 5 个已验证测试号码之列。请在 Developer App 的 WhatsApp 面板中添加。

"Token expired"

  • 临时令牌有效期为 24 小时。正式使用请替换为 System User token。

"Message failed : outside 24h window"

  • 参见上方的会话窗口说明。让用户向业务号码发送任意消息以重新开启窗口,或注册模板用于无征兆发送。

"Rate limit exceeded"

  • 新账户每日企业发起的对话上限约为 50 条,随企业认证等级提升而扩大;详见 Meta 的扩容文档

参考资料

本页目录