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 的擴容文檔

參考資料

本頁目錄