Введение
Этот раздел содержит официальную документацию по использованию 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}"}) - Подпись и кнопки: СТАТИЧЕСКИЕ в определении шаблона и НЕ МОГУТ быть отправлены динамически
Как узнать, какие компоненты отправлять
-
Сначала вызовите эндпоинт компонентов шаблона:
-
API возвращает только те компоненты, которые нужно предоставить:
- Отправьте ТОЛЬКО эти компоненты в запросе уведомления
Типы компонентов по позиции
Компоненты заголовка (Только медиа)
ВАЖНО: Только ОДИН компонент заголовка на шаблон. Текст заголовка СТАТИЧЕСКИЙ.
Примечание:
header_text НЕ является динамическим компонентом. Текст заголовка определяется в шаблоне и не может быть изменён.
Компоненты тела (Только переменные)
Текст тела с плейсхолдерами требует переменные по порядку:{"{1}"}, {"{2}"}, {"{3}"} и т.д.
Пример шаблона: “Привет
{"{1}"}, ваш курс {"{2}"} готов”
body_text_0: Значение для{"{1}"}(например, “Мария”)body_text_1: Значение для{"{2}"}(например, “JavaScript”)
Компоненты подписи
⚠️ Подпись СТАТИЧЕСКАЯ — определяется в шаблоне и не может быть изменена для каждого сообщения.Компоненты кнопок
ВАЖНО: Большинство кнопок СТАТИЧЕСКИЕ. Однако URL-кнопки с переменными МОГУТ быть динамическими.
Примечание: Кнопки быстрого ответа всегда статические и не могут быть изменены.
📚 Связанная документация
- Аутентификация — Как получить токены доступа и API-ключи
- Голосовые уведомления — Отправка автоматизированных голосовых звонков
- Управление шаблонами — Создание и управление шаблонами WhatsApp
- Планирование — Расширенное планирование и управление часовыми поясами
- Обработка ошибок — Полные коды ошибок и стратегии обработки
- Лучшие практики — Рекомендации по безопасности и производительности
