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.