Подключение бота Botpress к WhatsApp через Coexistence
Используйте интеграцию Botpress с WhatsApp в режиме Manual Configuration. Вставьте токен доступа и phone number id подключённого номера, задайте токен проверки, а поля App ID и Client Secret оставьте пустыми. Затем укажите URL вебхука Botpress и этот токен проверки как адрес вебхука для номера, и Meta будет доставлять боту каждое сообщение.
Поле Client Secret в Botpress: если оставить его пустым, проверка подписи вебхука пропускается.
Поля вебхука, на которые подписывает руководство Botpress, включая сообщения и обновления статуса шаблонов.
Окно обслуживания клиентов, которое открывает сообщение клиента: внутри него можно отправлять любое сервисное сообщение.
Какая конфигурация Botpress работает с номером Coexistence?
Manual Configuration. Остальные варианты подключают номер через собственное приложение Meta у Botpress, а это отдельное подключение номера, а не способ использовать уже подключённый.
В интеграции WhatsApp откройте выпадающий список Configuration и выберите Manual Configuration. Он запрашивает Verify Token, Access Token, Default Bot Phone Number ID и, по желанию, App ID, Client Secret и WABA ID.
Токен доступа, phone number id и WABA id берутся из подключения: их показывает панель управления, а get_api_credentials возвращает их ассистенту. Токен проверки: любая строка на ваш выбор. App ID и Client Secret остаются пустыми. В руководстве Botpress секрет подан как поле для заполнения, но в определении интеграции оно помечено необязательным, и там сказано, что без него проверка подписи пропускается. Это важно, потому что Meta подписывает каждую доставку секретом приложения Tech Provider, которого нет ни у одного клиента.
Как вебхук Botpress получает сообщения от Meta?
Через адрес вебхука номера. Руководство Botpress предлагает вставить его URL вебхука и ваш токен проверки в настройки WhatsApp приложения Meta. Здесь собственного приложения Meta у вас нет: Meta направляет события номера на тот адрес, который указан в подключении. Поэтому скопируйте URL вебхука, который Botpress показывает для интеграции, и задайте его вместе с тем же токеном проверки как адрес назначения в панели управления или через set_webhook_destination.
Meta отправляет проверочный запрос GET, Botpress отвечает на него, и доставка начинается. Когда Botpress сохраняет ручную конфигурацию, он также проверяет токен, спрашивая у Graph, какое приложение его выпустило. Поэтому недействительный или отозванный токен приводит к ошибке при сохранении, а не при первом сообщении.
Обработчик Botpress также принимает smb_message_echoes: это событие Meta отправляет, когда кто-то отвечает из приложения WhatsApp Business. Так ответ с телефона виден боту, а не скрыт от него.
| Required? | What to enter | |
|---|---|---|
| Access Token | Required | The connected number's token |
| Default Bot Phone Number ID | Required | The connected number's phone number id |
| Verify Token | Required | Any string, reused in the webhook destination |
| WABA ID | Optional | The connected number's WABA id |
| App ID and Client Secret | Optional | Leave both empty |
Что бот должен знать о Coexistence?
Что человек, возможно, уже ведёт разговор. Приложение WhatsApp Business продолжает работать на номере, поэтому клиент может получить ответ и с телефона, и от бота в течение одной минуты. Решите в сценарии, что делать при получении эхо-события: в большинстве команд бот на какое-то время ставится на паузу для этого контакта, чтобы не перебивать человека, который вмешался.
Второй момент: время. Бот, отвечающий на входящие сообщения, работает внутри окна обслуживания клиентов в 24 часа, где разрешён свободный текст. Сценарий, который отправляет что-то через сутки, например напоминание или повторное обращение, требует одобренного шаблона, а свободный текст в этом случае вернёт ошибку 131047. Руководство Botpress подписывает поля статуса шаблонов именно для таких проактивных сообщений.
Пропускная способность для номера Coexistence фиксирована: 20 сообщений в секунду, что намного больше, чем отправляет диалоговый бот.
Распространённые ошибки
- Указывать в Client Secret секрет собственного приложения Meta. Подпись никогда не совпадёт, и Botpress ответит на каждую доставку кодом 401.
- Выбирать вариант OAuth или sandbox вместо Manual Configuration. Они подключают номер через собственное приложение Botpress, а не тот номер, который уже подключён.
- Игнорировать эхо-события. Без правила для ответов, отправленных с телефона, бот отвечает поверх человека, который уже вмешался.
Подключите номер на easycoexistence.com, вставьте его токен и phone number id в Manual Configuration в Botpress и укажите URL вебхука Botpress как адрес назначения. От US$ 9 за подключённый номер в месяц, до US$ 1 по мере добавления номеров, первые 3 дня бесплатно.
Часто задаваемые вопросы
Безопасно ли пропускать проверку подписи?
Защита переносится на URL. Botpress создаёт URL вебхука для каждой интеграции, поэтому держите его в секрете. Медиафайлы всё равно нужно получать от Meta с помощью токена, а поддельное событие его подделать не может.
Может ли тот же номер работать и с n8n?
У номера один адрес вебхука. Направьте его на одну систему и пересылайте события оттуда, если они нужны второй.
Нужен ли Botpress мой WABA id?
В определении он пока помечен необязательным, и там сказано, что в будущей мажорной версии он станет обязательным, поэтому заполните его из данных подключения.
Проходят ли сообщения через EasyCoexistence?
Нет. Meta доставляет их напрямую на URL вебхука Botpress, а содержимое у нас никогда не хранится.
Читайте дальше
Готовы начать?
Настройте WhatsApp Coexistence за несколько минут, а не месяцев. Приложение продолжит работать на телефоне.
Начать бесплатный пробный периодПроверено по состоянию на