Как сделать своего чатбота

Урок 12 из 29

Как вы знаете, в Битрикс24 есть свой внутренний мессенджер, а также Открытые линии – для общения с клиентами. Чатботы могут пригодиться и там, и там.

Как сделать чатбота

4 мин

Откроем раздел «Добавить чатбот» в инструменте Разработчикам и выберем сценарий «Информировать сотрудников в чате».

Первым шагом, нам нужно добавить бота в наш Битрикс24. Придумаем ему название и укажем адрес обработчика, на который будут приходить сообщения от сотрудников

Доступность из внешней сети

Очень важно, чтобы адрес обработчика был доступен из внешней сети. Никаких localhost, никаких самоподписанных SSL-сертификатов и так далее. Проверяйте доступность вашего URL каким-то сторонними сервисами, не уповайте, пожалуйста, на то, что именно в вашем браузере этот адрес успешно открывается.

Выберем тип чатбота. Интерфейс предлагаем нам 4-е основных типа:

  • чатбот для внутреннего мессенджера, который будет отвечать сразу,
  • чатбот для внутреннего мессенджера, который будет «делать вид», что он набирает текст ответа,
  • чатбот для открытых линий
  • и, наконец, специальный вид чатбота, который обычно используется в качестве чатбота -суфлера в групповых чатах.

Для сегодняшнего примера выберем первый тип и нажмем кнопку «Создать бота».

После создания бота мы видим новые поля, самое важное из которых - CLIENT_ID бота. В дальнейшем это потребуется нам для вызовов REST API от имени нашего чатбота.

Мы можем прямо сейчас убедиться, что чатбот работает.

В разделе «Генератор запросов» уже собраны все основные параметры, которые позволят нам отправить сообщение пользователю от чатбота при помощи метода imbot.message.add. Идентификатор пользователя указывается в параметре DIALOG_ID. Нажимаем «Выполнить». Запрос срабатывает, и мы видим, что текущий пользователь получил сообщение от чатбота.

Теперь скачаем пример из урока и загрузим его на сервер так же, как вы это делали ранее, вставив в settings.php код нашего текущего вебхука.

В скачанном примере, помимо стандартных файлов нашего SDK, добавлен файл handler.php c логикой работы чатбота. Чуть позже мы расскажем, что именно он будет делать и как.

Вернемся в интерфейс Битрикс24 и перейдем в диалог с чатботом. Отправим ему сообщение «Привет, как дела?». Чатбот нам тут же отвечает. Прекрасно! Осталось разобраться, как это работает. А значит, пора внимательнее посмотреть на код в файле handler.php – ведь именно сюда, в нашем случае, приходят сообщения от пользователей.

Сообщения приходят в виде POST-запроса с данными определенной структуры. Поскольку код примера сохраняет эти запросы в лог-файле, то сейчас мы можем посмотреть, что содержится внутри.

Как видите, тут все довольно просто. Во-первых, Битрикс24 сообщает нам, что вызвал наш обработчик в результате возникновения события. А именно, события отправки нашему чатботу нового сообщения от пользователя портала. У чатботов есть ряд других событий, которые они могут получать, все они описаны в документации.

Далее, мы видим, в каком диалоге происходило общение, и какой пользователь написал чатботу. Поскольку в нашем случае общение происходит не в групповом чате, а в индивидуальном, идентификатор диалога совпадает с идентификатором пользователя портала. И наконец, мы видим, то самое сообщение, которое только что писали в чате.

Мы можем обработать это сообщение и подготовить ответ. В нашем примере мы просто делаем reply пользователю с текстом его же сообщения при помощи уже известного нам метода rest imbot.message.add.

Вы видите, что в коде указаны нужные параметры – идентификатор чатбота, client_id. Номер диалога берется из данных, которые пришли в обработчик (поскольку с чатботом будут в дальнейшем общаться разные пользователи портала). Текст ответа формируется из сообщения пользователя.

В реальных задачах вы можете анализировать сообщения пользователей, подгружать динамически данные из внешних систем для формирования ответа и многое другое. Чатботы позволяют автоматизировать очень многие рутинные операции, делая их легкодоступными для пользователей Битрикс24.

Список ресурсов

Материалы уроку: