Skip to main content

Введение

Этот раздел содержит официальную документацию по использованию API Lovi с WhatsApp через Postman. Он включает подробные инструкции по настройке и тестированию API-запросов для интеграции с WhatsApp, обеспечивая бесперебойную коммуникацию через платформу. Аутентификация выполняется с помощью токенов, обеспечивающих базовую аутентификацию для сервисов API. Подробнее об аутентификации см. на странице Аутентификация. API Lovi поддерживает уведомления WhatsApp с мультимедийным контентом, динамическими плейсхолдерами, запланированной доставкой и интеграцией с потоками разговоров.

Ключевые возможности:

  • Уведомления WhatsApp с поддержкой мультимедиа
  • Динамическая персонализация контента с помощью плейсхолдеров
  • Запланированная доставка сообщений с поддержкой часовых поясов
  • Интеграция с потоками разговоров
  • Два формата структуры данных (вложенная и плоская)

📣 Отправка уведомления WhatsApp

Для отправки уведомления через API Lovi выполните POST-запрос к эндпоинту с необходимыми параметрами и аутентификацией.
Метод: POST Формат: JSON

Эндпоинт

Параметры запроса

Примеры URL:

Заголовки

Примечание: Аутентификация выполняется через параметр access_key в URL, а не через заголовки.

📋 Параметры запроса

API поддерживает два формата структуры данных, управляемых параметром unflatten.

Обязательные параметры

Важно: Необходимо использовать либо contact (для одного получателя), ЛИБО contacts (для нескольких), но НЕ оба.

Необязательные параметры


👥 Один vs несколько получателей

Использование contact — отправка одному человеку

Используйте contact, когда хотите отправить уведомление одному получателю. Структура:
  • contact — это объект (не список)
  • Обязательное поле: number
  • Необязательные поля: name, email и любые пользовательские поля

Использование contacts — массовая отправка

Используйте contacts, когда хотите отправить одно уведомление нескольким получателям одновременно. Структура:
  • contacts — это список/массив (не единичный объект)
  • Максимум: 100 контактов за запрос
  • Каждый контакт должен иметь number
  • Необязательные поля: name, email и любые пользовательские поля
Важные ограничения:
  • ⚠️ Нельзя использовать unflatten=true с contacts — массовая отправка работает только с вложенной структурой
  • ⚠️ Нельзя использовать contact и contacts одновременно — выберите что-то одно
  • ⚠️ Список contacts не может быть пустым — минимум 1 контакт

🔄 Форматы структуры данных

API поддерживает два формата на основе параметра unflatten:

Вложенная структура (unflatten=false или не указан)

При unflatten=false или без указания используйте вложенные объекты:

Плоская структура (unflatten=true)

При unflatten=true все вложенные объекты должны быть сведены через точечную нотацию:

Когда использовать каждый формат

  • Вложенная структура (unflatten=false): Рекомендуется для лучшей читаемости и когда ваша система поддерживает вложенные объекты
  • Плоская структура (unflatten=true): Используйте, когда ваша система не поддерживает вложенные объекты или требует плоскую структуру данных

🎨 Компоненты и мультимедиа

ВАЖНО: Компоненты, которые можно отправить динамически, — это ТОЛЬКО те, которые возвращает эндпоинт компонентов шаблона. Структура зависит от наличия переменных или медиа в шаблоне.

Правила именования компонентов

  • Медиа заголовка: header_image, header_video, header_document (БЕЗ суффикса-номера)
  • Переменные тела: body_text_0, body_text_1, body_text_2 и т.д. (с индексным номером для каждого плейсхолдера {"{1}"}, {"{2}"}, {"{3}"})
  • Подпись и кнопки: СТАТИЧЕСКИЕ в определении шаблона и НЕ МОГУТ быть отправлены динамически

Как узнать, какие компоненты отправлять

  1. Сначала вызовите эндпоинт компонентов шаблона:
  2. API возвращает только те компоненты, которые нужно предоставить:
  3. Отправьте ТОЛЬКО эти компоненты в запросе уведомления

Типы компонентов по позиции

Компоненты заголовка (Только медиа)

ВАЖНО: Только ОДИН компонент заголовка на шаблон. Текст заголовка СТАТИЧЕСКИЙ. Примечание: header_text НЕ является динамическим компонентом. Текст заголовка определяется в шаблоне и не может быть изменён.

Компоненты тела (Только переменные)

Текст тела с плейсхолдерами требует переменные по порядку: {"{1}"}, {"{2}"}, {"{3}"} и т.д. Пример шаблона: “Привет {"{1}"}, ваш курс {"{2}"} готов”
  • body_text_0: Значение для {"{1}"} (например, “Мария”)
  • body_text_1: Значение для {"{2}"} (например, “JavaScript”)

Компоненты подписи

⚠️ Подпись СТАТИЧЕСКАЯ — определяется в шаблоне и не может быть изменена для каждого сообщения.

Компоненты кнопок

ВАЖНО: Большинство кнопок СТАТИЧЕСКИЕ. Однако URL-кнопки с переменными МОГУТ быть динамическими. Примечание: Кнопки быстрого ответа всегда статические и не могут быть изменены.

📚 Связанная документация