Блог

Чат-бот 1С для Telegram

Telegram один из самых современных и технологических мессенджеров. И это открывает много новых возможностей для разработки дополнительных инструментов для бизнеса. Речь идет про боты, которые могут частично автоматизировать общение с клиентами, тем самым освободить время для менеджеров и операторов для других важных задач.

API telegram имеет много функций, он постоянно развивается. Рассмотрим только некоторые возможности работы с ботами на примерах некоторых функций.

1. Создание бота Telegram

Первое, что нужно сделать - это создать бот для которого будем разрабатывать функционал. В телеграмм для этого есть отдельный бот @BotFather. Добавляете его в свои контакты и в чате пишете команду "/ start". Он выведет список всех доступных команд с описаниями. Для создания бота есть команда:

Далее общаемся с ботом и пошагово заполняем данные. Сначала вводим уникальное имя боту. Если имя свободно получим сообщение и уникальный токен который нам нужен для работы через АПИ.

Добавляем бот в контакт и можем с ним работать.

2. Подключение к серверу telegram через api.

Есть вариант самостоятельного подключения к API сервера телеграмму для получения новых сообщений. Это не очень удобно, потому что постоянно надо посылать запрос, чтобы получить новые сообщения если они есть.

Более интересный вариант - это развернуть собственный веб-сервер и тогда телеграмм будет сам отправлять нам новые сообщения. Веб-сервер обязательно должен работать в защищенном режиме с валидными сертификатами.

Для отправки сообщений, нам надо в телеграмм передать УРЛ на который он будет это делать. Для начала создадим обработку сообщений. Создаем новый HTTP сервис в 1С и модуль обработки POST запросов. В процедуре обработки запросов в которой пишем наш код обработки:

Теперь мы имеем адрес обработки новых сообщений с телеграма и можем его передать на сервер.

где server - это доменное имя Вашего сервера, baza1c - имя базы указанное при публикации. И код передачи:

где Токен - это Ваш токен полученный при регистрации Вашего боту.

Если все сделано правильно, при написании новых сообщений через бот Они будут сразу отправляться на веб-сервер.

3. Получение новых сообщений с telegram в 1С.

Формат получения новых сообщений простой и понятный. Пишем обработку получения этих сообщений.

 

4. Отправка сообщений из 1С в telegram

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

 

5. Вставка в сообщение кнопок и получение результата их нажатия.

С текстом разобрались, для удобства надо вывести кнопки и обработать их нажатие клиентом.

Для того, чтобы отправить кнопки в чат надо сообщению добавить еще параметр "reply_markup" и описание кнопок в формате json. Например, делаем выбор из нескольких вариантов. Готовим массив этих значений и формируем из них json.

Добавляем к сообщению: 

Когда в чате пользователь нажмет кнопку мы получим то значение которое передали в параметре "callback_data".

В нашей функции, которую мы получаем новые сообщения, среди параметров признак нажатой кнопки:

 

6. Вставка ссылок в сообщения:

Бывают ситуации, когда нужно, чтобы на нажатой кнопку отрывался, например, сайт компании.

Такие кнопки отличаются от обычных кнопок только одним параметром. Для вывода обычных кнопок мы передавали так:

А для кнопок со ссылками второй параметр меняем на ссылку на сайт.

Возможностей в API Telegram значительно больше, но для понимания механизма этого достаточно.