Как подключить 1с к телеграмм боту
Перейти к содержимому

Как подключить 1с к телеграмм боту

  • автор:

Как подключить 1с к телеграмм боту

Дата публикации 15.03.2021

Использован релиз 1.6.24

В прикладном решении можно обмениваться текстовыми сообщениями c клиентами из мессенджера Telegram.

Клиент обращается к боту компании, созданному в Telegram (через @BotFather). При получении системой сообщения от клиента создается новое обсуждение и автоматически добавляются ответственные сотрудники.

В окне обсуждения сотрудники могут общаться с клиентом от лица бота (Telegram) – получать и отправлять сообщения без переключения на другие приложения. Вся история переписки сохранится в программе.

Интеграция с Telegram работает с версией технологической платформы не ниже 8.3.17. Интеграция с мессенджерами не поддерживает работу с файлами: невозможно получить файл из мессенджера и передать файл внешнему пользователю.

  1. Раздел: CRM –Еще больше возможностей.
  2. Установите флажок "Чат, история изменений и видеозвонки (новый интерфейс)" и подключите обсуждения (чат). О том, как это сделать, см. здесь.

    Найдите в Telegram бот BotFather (или перейдите по ссылке https://telegram.me/botfather). Начните общение с ботом, нажав на кнопку "Запустить/Start" в чате (в мессенджере Telegram).

  • заканчиваться на суффикс bot;
  • быть уникальным в рамках Telegram.

Интеграция с мессенджерами не поддерживает работу с файлами: невозможно получить файл из мессенджера и передать файл внешнему пользователю.

Смотрите также

Не пропускайте последние новости — подпишитесь
на бесплатную рассылку сайта:

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

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

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

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

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

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

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

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

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

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

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

Интеграция Вашей 1С с Telegram и для чего это нужно

В этой статье мы рассмотрим, как через Телеграм (Telegram) информировать клиентов о статусе заказа, об остатках товара, как руководителю компании получать отчеты и расскажем про другие возможности интеграции Вашей 1С и Telegram.

Наиболее популярные мессенджеры (WhatsApp, Viber, Telegram, азиатский WeChat) по числу активных пользователей опережают социальные сети. Месячная аудитория топ-мессенджеров составляет более 3 млрд человек (Telegram — 500 миллионов активных пользователей в месяц). По данным аналитического агентства Forrester, через 5 лет мессенджеры станут основным инструментом клиентского обслуживания. В Facebook Messenger, крупнейшем в мире сервисе по обмену сообщениями, уже реализовано более 100 000 ботов.

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

Чат-бот Telegram и интеграция с 1С

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

Однако не все знают о том, что вашим собеседником в Telegram может быть не только человек, но и компьютер. И даже ваша 1С. Вы задаёте вопрос в Telegram— Ваша база 1С выдаёт ответ.

Об этом и пойдёт речь ниже. В Telegram на вашем мобильном появляется новый контакт — робот, связанный с 1С. Выбирая команды в меню этого чата, вы задаёте вопросы роботу и получаете нужную информацию. Например, отчет по выручке конкретного магазина за день или остатки того или иного товара на данную секунду.

Ваши клиенты также могут использовать Телеграм по другим запросам (какие Вы сами установите). Например, можно настроить, чтобы клиент мог узнать через телеграмм Телеграм (Telegram) статус своего заказа, написав номер заказа в чате.

Бот делает любой отчет 1С доступным вам в один клик и без привязки к офису.

Безопасность и права доступа настраиваются в 1Си даже в самом боте.

Не требуется дополнительная лицензия 1С.

Доработка под Ваши бизнес-процессы и нужды.

Рассмотрим возможности бота на реальных примерах:

Первый запуск бота

При первом запуске бот сам предложит кнопку старта:

Настройки безопасности

Вы можете установить пин-код, для того чтобы никто кроме Ваших сотрудников не смог воспользоваться Вашим ботом. Достаточно всего один раз ввести пин-код и бот запомнит, что данном пользователю можно присылать информацию:

Если пин-код верный, пользователю сразу поступит об этом сообщение:

В противном случае, бот будет требовать пин-код, пока пользователь не введет верный пин-код.

Информация для помощи пользователю

Введя команду /help или просто /h пользователь может получить помощь в использовании бота.
Текст для помощи можно написать по Вашему желанию:

Команды бота

Теперь рассмотрим самое интересное – команды, которые может выполнять Ваш бот. Обращаю внимание, что это просто примеры команд. Мы можем настроить для Вас бот таким образом, чтобы выполнялись команды, которые нужны именно Вам!

Итак, чтобы получить список команд, достаточно написать боту любое сообщение:

Бот предоставит Вам список команд, а также кнопки для быстрой активации команды:

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

Активируем команду и бот просит нас ввести артикул товара, чтобы найти его в Вашей базе 1С:

После ввода артикула бот выдаст нам инфо по товару (его остатки по всем складам и установленные цены на реальное время):

Вы можете и далее вводить артикулы товаров, чтобы узнать информацию по остаткам и ценам. Не нужно каждый раз выходить в главное меню и заново выбирать команду, это очень удобно:

Если Вы хотите вернуться в главное меню бота, достаточно нажать на кнопку «Стоп»:

И бот снова предоставит Вам весь список доступных команд из главного меню:

Отчёты из Вашей 1С прямо в Вашем боте

Бот умеет присылать отчёты из Вашей 1С отдельным файлом в удобном для Вас формате.

Доступны следующие форматы: XLSX,XLS,PDF,DOCX,HTML4,TXTи другие.

Как пример, давайте получим отчёт по остаткам на складах.

Выбираем в боте нужную нам команду:

В ответ бот нам присылает отчёт в формате HTML:

Давайте посмотрим сам отчёт:

Как видите, отчёт выглядит точно также как и в 1С! Более того, при формировании, сохранении и отправки отчета Вам проходит не более одной минуты!

Разграничения прав в боте

Далеко не всем пользователям нужен полный функционал бота. Например, кассир не должен иметь возможности получить отчёт за квартальную выручку предприятия.

Для этого в боте есть разграничения по ролям. Роли и доступные команды для них настраиваются в 1С. Но пользователь с полными правами может настраивать права для всех пользователей и через самого Бота! Показываем пример:

1. Выбираем меню управления:

2. Выберем команду «Удалить роль у пользователя»:

3. Из полного списка пользователя выберем нужного:

4. И выберем роль, которую необходимо удалить у данного сотрудника:

Готово. Бот сообщит об успешно выполненной команде:

Теперь при выборе команды, данному пользователю бота будет доступна всего лишь одна команда, как мы и хотели:

Таким образом, мы можем разграничивать права любого пользователя бота из самого бота!

Подведем итоги того, чего умеет бот:

Присылает отчёты/информацию из Вашей 1С за минимальный промежуток времени.

Прямо из бота можно разграничивать права для всех пользователей бота.

Не даёт использовать бот тем, кто не работает в Вашей организации.

Предоставляет гибкую возможность настроить бот под бизнес-процессы и нужды Вашей организации.

Телеграм бот 1С

Задача:
Создать телеграм бота и научится работать с ним в «1С:Предприятие 8», через long polling и webhooks, используя Telegram bot API.

02.04.2021 Обновлено:
— Добавлено видео «Интеграция 1С с Telegram за 12 минут», где показано как с помощью системы взаимодействия работать с телеграм ботом.

1. Регистрация телеграм бота.

Регистрация нового телеграм бота, происходит с помощью бота https://t.me/botfather:

Регистрация бота шаг 1 Регистрация бота шаг 1 Регистрация бота шаг 2 Регистрация бота шаг 2 Регистрация бота шаг 3 Регистрация бота шаг 3 Регистрация бота шаг 4 Регистрация бота шаг 4

2. Два способа работы с телеграм ботом.

При помощи «Telegram Bot API», есть два взаимоисключающих способа работы с телеграм ботом:

  1. Метод «getUpdates» – самостоятельно, выполняем запрос получения новых обновлений.
  2. Использование «Webhooks» – обновления приходят автоматически от сервера, на указанный URL-адрес.

Оба способа, работают по протоколу HTTPS, поддерживают HTTP методы GET и POST. Запросы к методам API, должны быть представлены в виде:

Ответ приходит в виде JSON, не обработанные обновления хранятся на сервере до тех пор, пока бот их не получит, но они не будут храниться дольше 24 часов.

3. Подготовка конфигурации.

3.1 Для удобвства отправки и получения данных по HTTP, будет использоваться «Коннектор», Владимира Бондаревского. По адресу https://github.com/vbondarevsky/Connector скачиваем и распаковываем «Коннектор: удобный HTTP-клиент для 1С:Предприятие 8»:

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8

Коннектор: Загрузка конфигурации

Коннектор: Загрузка конфигурации

Перенос общего модуля

Пояснение кода: На стороне клиента вызываем функцию «ТестТокенаНаСервере», в которой формируется «АдресURL» состоящий из адреса API, токена и метода. После выполняем HTTP запрос, при помощи функции «GetJson», в результате получаем десериализованный из JSON ответ сервера, с последующей обработкой и выводом в текстовый документ. Результат выполнения:

Метод "getMe"

4. Метод «getUpdates».

Из 1С, самостоятельно, периодически обращаемся к методу API «getUpdates», для получения 100 самых ранних неподтвержденных (не полученных ранее) обновлений, в виде JSON объекта «Update».

Метод "getUpdates"

offset Идентификатор возвращаемого обновления — каждое обновление имеет свой числовой идентификатор «update_id».
limit Ограничивает количество получаемых обновлений. Принимаются значения от 1 до 100.
timeout Тайм-аут в секундах для длительного опроса.
allowed_updates Задается список типов обновлений, которые должен получать бот.

Для нашего примера, будет заполнен только параметр offset равным 0, для того чтобы получить все не обработанные обновления. Процедура обработки команды «Обновить» на клиенте:

Методы «ОбновитьНаСервере» и «ОбработатьОбновление»:

Пояснение кода: На стороне клиента вызываем функцию «ОбновитьНаСервере», в которой формируется «АдресURL» состоящий из адреса API, токена и наименовании метода «getUpdates». После заполняем параметры и выполняем HTTP запрос, при помощи функции «GetJson», в результате получаем десериализованный из JSON ответ сервера, который передаем в процедуру «ОбработатьОбновление», где рекурсивно выводим данные в текстовый документ. В приложении «Телеграм», отправляем боту сообщение «Привет мир!». В обработке нажимаем «Обновить», в результате, будет получена информация обновления и отправленное сообщение:

Метод "getUpdates"

Пояснение кода: На стороне клиента вызываем процедуру «ЭхоОтветНаСервере», в которой формируем запрос к методу «getUpdates», с учетом номера последнего обновления, для того чтобы предыдущие сообщения были «обработаны» и не приходили. Выполняем HTTP запрос, при помощи функции «GetJson» и получаем массив не «обработанных» обновлений. В каждом элементе массива содержится данные сообщения, из которых получаем идентификатор чата «chat_id» и текст сообщения «text».
Формируем новый запрос к методу «sendMessage» в результате которого будет отправлено ответное сообщение, отправителю. Протестируем, для этого, в приложении «Телеграм», отправим сообщение боту, после, в обработке нажимаем кнопку «Эхо ответ»:

Метод "sendMessage"

5. Использование «Webhooks»

Webhooks — это механизм оповещения о происходящих в системе событиях посредством функций обратных вызовов. Когда случается интересующее клиента событие, сервер отправляет HTTP-запрос на URL-адрес, предоставленный клиентом для приема webhooks. См. «Вебхуки: как получать данные без промедления и опросов API».
Для локальной веб-разработки и тестирования используется «Open Server» — это портативная программная среда, созданная специально для веб-разработчиков, в составе которой множество необходимых модулей, в нашем случае это Apache.

5.1 Скачиваем и устанавливаем Open Server.
5.2 В «Командной строке» (запущенной от имени администратора) переходим в каталог «C:\OpenServer\modules\http\Apache_2.4-PHP_7.2-7.4\bin» и выполняем команду:

Сервис Apache

Пояснение кода: При получении запроса от «Телеграм», десериализуем тело из JSON в объект, получаем исходные данные сообщения, такие как текст и идентификатор чата и тут же отправляем его обратно.

5.4 Откройте «Open Server Panel», но не запускайте, должен быть красный флажок. В конфигураторе открыть, меню «Администрирование – Публикация на веб-сервере…» выбрать каталог и нажать «Опубликовать», без перезапуска веб-сервера.

Публикация сервиса

После чего, «1С» внесет изменения в файл «‪C:\OpenServer\modules\http\Apache_2.4-PHP_7.2-7.4\conf\httpd.conf»:‬

Apache config

5.5 Запускаем «Open Server», в результате чего у нас будет доступен HTTP сервис по адресу:

Для проверки воспользуемся приложением «Postman»:

Postman test

5.6 Webhooks работают только по протоколу HTTPS, для которого необходим SSL сертификат, а для того чтобы «Telegram Bot API» смог прислать обновление, необходим «белый» статичный IP адрес, на котором должен быть опубликован HTTP сервис 1С. В текущий момент, адрес http://127.0.0.1/TelegramBot1C/hs/updates/ виден только внутри вашего компьютера, это так называемый localhost.
Для получения обновлений, воспользуемся сервисом «ngrok» — который создает туннели на локальный компьютер, к нашему localhost. Скачиваем и распаковываем «ngrok», запускаем «Командную строку» в папке где расположен исполняемый файл «ngrok.exe» и выполняем команду:

В результате, внутренние локальные сервисы, станут доступны для внешнего взаимодействия:

Postman test ngrok

Postman test ngrok

5.7 Устанавливаем webhooks, для этого необходимо вызвать метод API «setWebhook» с заполненным параметром «url», в котором укажем полученный из «ngrok» адрес HTTPS туннеля, плюс путь публикации.

Для эксперимента, попробуем это сделать через «Postman»:

  1. В скрытой части адреса, указывается токен, пример: https://api.telegram.org/bot<Токен>/setWebhook
  2. Параметр «url» должен содержать адрес, полученный из «ngrok» и путь публикации, пример:

Postman setWebhook

Для удаление webhook и переход на метод «getUpdates», достаточно вызвать метод «deleteWebhook»:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *