Предлагаю обработку Телеграм-бот на 1С.
Простейший телеграм-бот на 1С. Бот получает сообщения от пользователей и возвращает ответ вида "Вы ИМЯ ФАМИЛИЯ написали: ТекстСообщенияПользователя".
Обработка имеет управляемую форму, из которой может быть запущен цикл проверки сообщений пользователей, также может быть встроена в типовые конфигурации 1С как внешняя обработка и запущена по расписанию.
Отличительные особенности обработки:
-Реализована работа через прокси и показаны примеры заполнения прокси адресов.
-Сделан подсчет успешных соединений через разные прокси, сбор статистики работы прокси.
-Обработка сделана максимально компактно и просто, с использованием механизмов платформы последних версий (работа с JSON)
Тестовый бот для демонстрации работы с телеграм из 1С
При нажатии на кнопку "Прочитать" Бот получает от сервера Телеграм сообщения от пользователей и отображает их на форме.
При нажатии на кнопку "Прочитать и ответить" бот получает от сервера Телеграм сообщения, отображает их на форме, и пишет пользователям ответные сообщения в виде
"Вы ИМЯ ФАМИЛИЯ написали: ТекстСообщенияПользователя".
Порядок работы с Ботом:
Необходимо зарегистрировать бота через @BotFather
Для создания бота в Telegram для этого создан специальный бот — @BotFather. Необходимо найти его в Телеграм, добавить в контакт и написать /start.
Введите команду /newbot — бот попросит придумать имя нашему новому боту (оно должно оканчиваться на «bot»). BotFather предоставит токен бота и ссылку для добавления бота в контакты. Проверьте полученный токен с помощью ссылки api.telegram.org/bot<TOKEN>/getMe (можно через браузер TOR для обхода блокировки).
Также вы получите ссылку на сайт Телеграм с описанием API.
Получение прокси сервера
Для работы с API Телеграм на территории России необходимо использовать зарубежный прокси-сервер. Прокси сервер можно найти бесплатный или купить.
Какой прокси использовать? - можно использовать как прокси IPv4 так и IPv6. IPv4 работает стабильнее, но он дороже. IPv6 дешевле, но работает менее стабильно: периодически запрос к серверу телеграм не проходит. В принципе это не страшно, так что можно сэкономить.
Для подключения использовал протокол https. Протокол SOCKS5 не заработал.
Настройки подключения обработки
Настройки подключения обработки хранятся в модуле объекта в процедуре ИнициализацияПараметров а также в макете обработки МакетТаблицаПрокси, в которой хранятся параметры используемых прокси серверов.
Запуск обработки в интерактивном режиме
Открыть обработку можно в режиме 1С Предприятие, откроется форма с настройками, заполненными в процедуре "ИнициализацияПараметров" и из макета ПроксиСерверов. Параметры обработки можно изменить по необходимости.
В обработке есть две кнопки
"Прочитать" - при нажатии на эту кнопку с сервера Телеграм будет прочитан список новых сообщений, которые пользователи написали боту. Сообщения, прочитанные таким образом перестанут считаться новыми и больше не будут читаться с сервера.
"Прочитать и ответить" - аналогично кнопке "Прочитать" + будет сформирован ответ бота на все сообщения пользователей вида "Вы ИМЯ ФАМИЛИЯ написали: ТекстСообщенияПользователя"
Запуск обработки в режиме встроенной обработки
Обработку можно встроить в типовые конфигурации 1С 8.3 как внешнюю обработку и там же указать периодический её запуск.
Формирование ответов пользователям
Ответы пользователям формируются в процедуре модуля объекта ОбработатьОтветы. В этой процедуре все сообщения, полученные ботом помещаются в таблицу значений и обрабатываются в запросе (при необходимости). Обработка сообщений пользователем при помощи запроса позволит вам сразу в запросе получать данные, которые вы ходите отправить из 1С пользователям.
ВебХуки
Следует иметь в виду, что существует более продвинутый способ работы с ботом телеграм, это использование ВебХуков. При этом телеграм при получении сообщения от пользователя обращается к поднятому Вами HTTP-сервису (соответственно, нужно поднять HTTP-сервис и открыть его наружу), имеющему подпись (соответственно, нужно получить сертификат) и решить проблему с получением IP адреса либо постоянного либо через DinDNS, что позволит отвечать пользователю мгновенно.
Делается это довольно просто:
В конфигурации 1С делается HTTP-сервис, обрабатывающий команду POST, полученное от Телеграма тело запроса обрабатывается аналогично методу в текущей обработке с той разницей, что обработка получает от Телеграма массив сообщений, а в теле запроса от телеграма приходит только одно сообщение.
Команды управления работой с Телеграм:
Для официального сертификата SSL (указание адреса нашего домена, по которому будет стучаться телеграм):
https://api.telegram.org/botТОКЕН/setWebhook?url=ВАШ_ДОМЕН
Для самоподписанного сертификата:(указание адреса нашего домена, по которому будет стучаться телеграм)
https://api.telegram.org/botТОКЕН/setWebhook?url=ВАШ_ДОМЕН&certificate=ФАЙЛ_СЕРТИФИКАТА
Удаление веб-хука, после чего телеграм копит сообщения от пользователей у себя на сервере до тех пор пока мы их не получим.
https://api.telegram.org/botТОКЕН/deleteWebhook
Получение информации об текущем статусе работы телеграма (Через Веб-хуки или через getUpdates)
https://api.telegram.org/botТОКЕН/getWebhookInfo
В этой обработке этот метод ВебХуков не используется.
Обработка тестировалась на Управление торговлей, редакция 11 (11.4.5.143).