使用 Minara客户端与界面消息平台
通过 Meta Cloud API 发送出站消息。需要企业账户,会话窗口严格,仅支持发送。
🟢 运行时就绪 直接调用 Meta Cloud API v21,无需 SDK。不支持流式编辑:Cloud API 的编辑窗口仅 15 分钟,且频率限制严格,复杂度不值得。该助手会缓冲 token,在最终确认时一次性发送。
功能说明
- 从已验证的 Meta Business 号码向任意 WhatsApp 号码(E.164 格式)发送消息
- 通过
channel按消息指定收件人 - 每条消息上限 4096 字符(与助手默认值一致)
前置条件
WhatsApp 的配置流程较为复杂,需要准备以下内容:
- Meta Business Portfolio(business.facebook.com)
- 在该 Portfolio 下已验证的 WhatsApp Business 手机号码(通过短信或语音验证)
- 已添加 WhatsApp 产品的 Meta Developer App(developers.facebook.com)
- 若需向测试号码以外的用户正式发送消息,须在 Meta Business Suite 完成企业认证(通常需要数小时至数天)
如只是试用:Developer App 自带 5 个免费测试收件号码,在 WhatsApp 面板中通过短信验证即可使用。
配置步骤
1. 获取访问令牌
- 进入 developers.facebook.com,选择你的应用,依次点击 WhatsApp → API Setup
- 初始测试可复制 Temporary access token(有效期 24 小时);长期使用请生成 System User access token:前往 business.facebook.com → Settings → Users → System Users,新建用户后点击 Generate new token(权限范围:
whatsapp_business_messaging+whatsapp_business_management)
2. 获取手机号码 ID 和收件号码
- 在同一 API Setup 页面,From 下拉菜单显示业务手机号,其下方的数字 Phone number ID 即为 Minara 所需字段(而非
+...格式的号码本身) - 在 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=+120255512344. 测试
minara auth messaging test whatsapp24 小时会话窗口
这是所有人都会遇到的限制:
Meta 规定,企业只能在用户最后一条入站消息后 24 小时内向其发送自由格式消息。超出窗口期必须改用预审批模板消息。
对于 Agent 告警来说,活跃对话期间没有问题;但对于无征兆通知(如隔夜 Autopilot 交易),则较为不便。以下是几种应对方式:
- 让用户在离开前向企业号码发送任意消息,该 ping 会重置 24 小时窗口
- 使用已审批的模板,在 Meta Business Suite 中注册告警模板(例如
{{1}} — {{2}} ({{3}}) triggered at {{4}});模板消息的发送不受窗口限制(每个模板单独设有频率限制) - 主动推送告警改用其他服务商,如 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 的扩容文档。