API 參考

渠道說明

WhatsApp Protocol 接入授權

WhatsApp Protocol 是獨立管道,使用 provider=whatsapp-protocol。目前僅支援工作階段匯入(auth_mode=session),透過既有工作階段憑證完成授權。

快速上手

  1. 1

    列出渠道區域

    查詢 whatsapp-protocol 的可用區域,選擇 allocatable=true 的區域。若沒有可分配區域,暫時無法在這些區域建立此管道帳號。

    curl -X GET "https://api.unifyport.ai/v1/providers/whatsapp-protocol/regions" \
      -H "X-Api-Key: <YOUR_API_KEY>"
    列出渠道區域
  2. 2

    建立帳號

    以 provider=whatsapp-protocol、auth_mode=session 建立帳號,將 data.id 儲存為 account_id。協定憑證僅提交至 /auth/session,不放入 provider_data。

    curl -X POST "https://api.unifyport.ai/v1/accounts" \
      -H "X-Api-Key: <YOUR_API_KEY>" \
      -H "Content-Type: application/json" \
      -d '{
      "name": "WhatsApp Protocol",
      "provider": "whatsapp-protocol",
      "region": "<REGION>",
      "auth_mode": "session"
    }'
    建立帳號
  3. 3

    匯入會話

    提交下方 whatsapp-protocol 物件;本流程需要 phone 及四個密鑰欄位。密鑰只能寫入、不在回應中顯示。省略棄用欄位,勿提交 edge_routing。

    curl -X POST "https://api.unifyport.ai/v1/accounts/<ACCOUNT_ID>/auth/session" \
      -H "X-Api-Key: <YOUR_API_KEY>" \
      -H "Content-Type: application/json" \
      -d '{
      "whatsapp-protocol": {
        "phone": "8600000000000",
        "static_pub_key": "<STATIC_PUBLIC_KEY>",
        "static_pri_key": "<STATIC_PRIVATE_KEY>",
        "identity_pub_key": "<IDENTITY_PUBLIC_KEY>",
        "identity_pri_key": "<IDENTITY_PRIVATE_KEY>"
      }
    }'
    匯入會話
  4. 4

    確認帳號可以傳送

    匯入後以 account_id 查詢授權與執行狀態。authorized 不代表已連線;帳號離線時先重新整理狀態再嘗試傳送。

    curl -X GET "https://api.unifyport.ai/v1/accounts/<ACCOUNT_ID>/auth" \
      -H "X-Api-Key: <YOUR_API_KEY>"
    
    curl -X POST "https://api.unifyport.ai/v1/accounts/<ACCOUNT_ID>/runtime/refresh" \
      -H "X-Api-Key: <YOUR_API_KEY>"
    重新整理執行狀態

備註

  • 支援 text、image 和聯絡人詳情;不支援引用回覆、mentions、聯絡人清單與寫入、對話或群組操作。映射事件包括文字/圖片 message.received、account.started、account.status.updated、account.auth.failed;實際投遞依上游帳號而定。
  • 聯絡人詳情需要現有 LID(xxx@lid)。只有入站事件的 data.sender.id 或 data.conversation.id 已以 @lid 結尾時才能直接使用。Protocol 不提供聯絡人清單查詢,此介面也無法從電話號碼推算 LID;沒有 LID 時無法進行此查詢。成功回應可能缺少資料欄位。