Справочник 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

    Проверьте готовность аккаунта

    После импорта проверьте авторизацию и runtime для account_id. authorized не означает установленное соединение. Если аккаунт вне сети, обновите runtime перед отправкой.

    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 не вычисляет LID по номеру телефона. Без LID выполнить запрос нельзя. Успешный ответ может не содержать часть профиля.