Нужна обработка (через адаптер)

"Нужна обработка (через адаптер)" — способ подключения для работы с данными в любом формате. Требует создания Python-скрипта, который преобразует входящие данные в формат, понятный платформе Nextbot.

Конфигурация

Ссылка вебхука

URL-адрес (endpoint) для получения вебхука находится в поле "Ссылка вебхука" на главной странице интеграции. Используйте этот URL для отправки POST-запросов с данными вебхука.

Пример:

https://app.nextbot.ru/api/webhooks/v1/682db757-7981-4bd4-8bb4-61bd1665a29/923ef269bf224bacadafb5ab05a2e75

Если необходимо обновить токен (например, при компрометации старого), нажмите кнопку "Обновить токен". Прежний URL станет недействительным.

Как работает адаптер

Адаптер — это Python-скрипт, который принимает входящий вебхук в произвольном формате и преобразует его в стандартный формат для Nextbot.

Он используется в тех случаях, когда сторонний сервис не может отправлять данные сразу в формате Nextbot.

Общая схема работы

  1. Сторонний сервис отправляет POST-запрос на ваш URL вебхука. Формат данных — JSON с произвольной структурой.

  2. Входящий запрос передаётся в адаптер. Адаптер получает:

    • тело запроса

    • HTTP-заголовки

    • служебные метаданные

  3. Python-адаптер:

    • извлекает нужные поля из входящих данных

    • формирует текст сообщения

    • указывает dialog_id

    • возвращает результат в формате Nextbot

Данные, доступные в адаптере

В адаптере доступен объект args, содержащий входящие данные:

Поле
Тип
Описание

args["request"]

dict

JSON-тело входящего запроса (структура зависит от стороннего сервиса)

args["headers"]

dict

HTTP-заголовки запроса (например, content_type, user_agent)

args["meta"]

dict

Метаданные (agent_hash, url_token)

Что должен вернуть адаптер

Python-скрипт обязан вернуть result следующего формата:

Поле
Тип
Обязательно
Описание

dialog_id

int

ID существующего диалога в Nextbot

text

str

Текст сообщения, которое будет добавлено в диалог

message_type

str

Тип сообщения (input, forwarded_output, output). По умолчанию input

message_id

str

Уникальный ID сообщения (если не указан — создаётся автоматически)

circle-info

Раскройте вкладку "Пример: уведомление о платеже", чтобы увидеть готовый пример с входящим запросом, Python-адаптером и результатом его работы

Пример: обработка вебхука от платёжной системы

Настройте функцию в Nextbot, которая после выполнения будет отправлять ID диалога (номер диалога) во внешнюю систему, например, через Custom API.

После этого платёжная система отправляет уведомление об успешной оплате. ID диалога передаётся в поле metadata.dialog_id (настраивается при создании платежа).

Вот пример JSON, который приходит через вебхук. Это произвольный формат данных, который еще не соответствует стандарту Nextbot:

Логика работы адаптера

  1. Извлекаем тело входящего запроса (args["request"])

  2. Получаем dialog_id из metadata

  3. Формируем человекочитаемый текст сообщения

  4. Возвращаем результат в формате Nextbot

Пример Python-кода адаптера

Результат работы адаптера

Сообщение появляется в указанном диалоге Nextbot, при этом его тип (input, output или forwarded_output) определяется настройкой message_type в адаптере:

circle-info

Для включения режима отладки добавьте параметр ?debug=true к URL вебхука. В ответе вы получите подробные логи выполнения запроса.

Важно учитывать

  • dialog_id должен существовать в Nextbot

  • Адаптер может обрабатывать любую структуру данных

  • В одном адаптере можно:

    • валидировать подписи вебхуков

    • проверять статус событий

    • фильтровать ненужные уведомления

    • формировать разные сообщения в зависимости от типа события

Last updated

Was this helpful?