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 と 4 つのキーが必須です。キーは書き込み専用で応答には含まれません。非推奨項目と 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>"
    Runtime 状態を更新

注記

  • 対応は text、image、連絡先詳細です。引用返信、mentions、連絡先一覧・書き込み、会話・グループ操作には非対応です。イベントはテキスト/画像 message.received、account.started、account.status.updated、account.auth.failed に対応し、実際の配信は上流アカウントに依存します。
  • 連絡先詳細には既存の LID(xxx@lid)が必要です。data.sender.id または data.conversation.id が @lid で終わる場合のみ再利用できます。Protocol に連絡先一覧 API はなく、この API も電話番号から LID を求められません。LID がなければ照会できません。成功応答でもプロフィール項目が省略される場合があります。