Перейти к содержанию

Frontend

Чат-бот

Чат-бот – это отдельный тип пользователя в мессенджере, за которым скрывается веб-приложение (бэкенд). Для создания чат-ботов перейдите в панель администратора и воспользуйтесь инструкциями из руководства администратора (Эксплуатация корпоративного сервера -> Управление контактами -> Чат-боты).

Для полноценной работы, чат-бот должен реализовывать Bot API и уметь работать с BotX API.

Bot API служит для получения информации от BotX и не содержит элементов авторизации (поддерживается возможность сымитировать получение сообщения от BotX, отправив боту запрос через Postman). Для работы с BotX API чат-бот должен прикреплять токен авторизации к каждому запросу.

Примечание

Для создания чат-бота или SmartApp бэкенд может использоваться любой язык программирования, поддерживающий получение и отправку HTTP-запросов. Однако, если вы используете Python3, обратите внимание на pybotx.

Получение токена чат-бота

Перед выполнением операции узнайте id бота и secret key. Они доступны на странице профиля чат-бота после регистрации чат-бота в панели администратора.

Используйте их для создания подписи:

echo "bot_id secret_key" | python3 -c "import base64, hmac, hashlib; bot_id, secret_key = input().split(); signed_bot_id = hmac.new(key=secret_key.encode(), msg=bot_id.encode(), digestmod=hashlib.sha256).digest(); print(base64.b16encode(signed_bot_id).decode())"

Получите токен, вызвав соответствующий метод в BotX API с полученной подписью. Время действия полученного токена неограниченно.

Получение сообщений/системных событий

BotX отправляет чат-боту команды (сообщения и системные события) на маршрут POST /command. Запрос является асинхронным. На этом этапе должно быть принято решение будет ли чат-бот обрабатывать сообщение или отклонит его (подробная информация о формате ответов доступна в документации BotX). На принятие решения должно тратиться не более 5 секунд, иначе BotX выведет пользователю системное сообщение: “Не удалось получить ответ от bot_name. Попробуйте повторить ваш запрос“. Обработка сообщения после принятия его в обработку может занимать любой отрезок времени, т.к. отправка ответного сообщения производится с помощью BotX API.