Болванка 1С телеграм бота через веб-хук
Попробовал реализовать на 1С диалог-бота телеграм, работающего через веб-хук (в продолжение этому https://infostart.ru/1c/articles/1542836/).
Мысль была создать нечто гибкое, настраиваемое прямо в 1С без допиливания кода в конфигураторе.
К сожалению, мало свободного времени, поэтому опубликую, что уже есть. Вдруг кто какую идею подкинет? 🙂
Версия платформы 1С 8.3.13.1926.
- Описание
- Подробнее
Описание
Идея следующая:
— телеграм присылает на веб-хук сообщение,
— с минимальными обработками помещаем сообщение в регистр сведений,
— чем-то проверяем записи регистра,
— обрабатываем,
— отвечаем.
Вроде бы ничего сложного, но "подводных камней" оказалось нормально так… Например, как для каждой пары "бот-пользователь" вести диалог не перепутав одно с другим? Или такое — как собрать все данные диалога и до окончания диалога не растерять их?
По идее можно на один веб-хук повесить несколько ботов (не проверял). Для бота в справочнике "Константы" создать запись, где "Наименование" должно быть такое же как при установке веб-хука.
Например у меня HTTP-сервис опубликован с шаблоном "/telegram/*", веб-хук одного бота вешаем на https://<адресСервера>:<port>/TestBase/hs/webhook/telegram/Bot_Name_1, веб-хук второго бота вешаем на https://<адресСервера>:<port>/TestBase/hs/webhook/telegram/Bot_Name_2
В справочнике "Константы" создаем две записи:
Bot_Name_1, значение = ТокенБота1
Bot_Name_2, значение = ТокенБота2
Таким образом мы сможем понять, от какого бота пришло сообщение на HTTP-сервис.

Саму обработку сообщений вынес в обработку "ОбработчикБОТ" (простите за тавтологию). Там собственно и строится диалог с пользователем.


Выглядит это так:

В сухом остатке, так сказать "подытожим":
1. Все полученные сообщения накапливаются в регистр сведений "ТелеграмСобытия"

2. Диалоги с пользователем ведем с помощью регистра "ТелеграмСтекРазговоров"

3. Диалоги и набор диалогов — эта два справочника "БотДиалоги" и "БотСтекДиалогов"

4. На сейчас все сырое, много идей в голове, но все как-то сумбурно ))) Хотел еще диалоги о предоставлении файликов и всякие действия. Но пока отложу… С мыслями надо собраться…
Плюс мысль — в самих диалогах тексты, наборы кнопок сделать динамическими, формирующимися по результатам предыдущих диалогов. Ну и обработку ответов еще надо обдумать.

