Но максимальный эффект и польза от подсистемы будут достигнуты с помощью квалифицированного программиста.
В подсистеме есть поддержка эмодзи.
Подсистема писалась для обычных форм, толстого клиента, но может быть легко переделана и под управляемые формы (планируется в следующих версиях).
Подсистема тестировалась на платформе 8.3.14.1694
Подсистема больше рассчитана на то, что пользователи бота – известные вам люди, например, руководители, которые хотят получать отчеты о деятельности компании, или менеджеры, которые должны с помощью бота делать заказ в 1С.
В меньшей степени она подходит для поддержки широкого пула клиентов, например, в качестве бота службы поддержки. Однако она легко может быть расширена благодаря тому, что…
Подсистема предлагает три уровня:
- Пользовательский
- Интерфейса
- API
Пользовательский уровень
На этом уровне располагаются настройки ботов и справочники с дополнительными возможностями.
Работа с этим уровнем упростит взаимодействие с ботом и настройку различных меню и кнопок в чате.
Краткое описание справочников:
Боты
– справочник ботов, с которыми должна взаимодействовать подсистема.
В этом справочнике достаточно ввести токен бота и нажать кнопку «Тест». Подтянутся настройки бота. Тут же можно установить или сбросить webhook.
Останавливаться на том, что такое webhook или токен бота, не буду, про эту часть настройки в интернете много информации, достаточно поискать по запросу «BotFather» или «регистрация бота в телеграм». Скажу только, что «входящий токен» – это исключительно внутренняя сущность подсистемы, добавленная для безопасности взаимодействия с ботом. Полный адрес вашего webhook будет https://урл-вашего-сайта/hs/telegram/входящий-токен – разумеется, после публикации http-сервиса «Webhook (Телеграм)».
Для режима Webhook предусмотрена опция «Автопинг». При включенной опции база периодически будет пытаться установить соединение с опубликованным webhook и получить ответ. Для корректной работы, убедитесь что сама база имеет доступ к адресу webhook и, если используется самоподписанный сертификат, то он должен быть добавлен в доверенные. При ошибке соединения будет вызвана функция ОшибкаАвтопинга модуля ЮК_ТГ_Пользовательский и, если настройка «Чат уведомления» заполнена, будет отправлено соответствующее сообщение об ошибке в выбранный чат.
Работа в режиме получения сообщений из очереди по запросу тоже поддерживается. В этом случае вам не нужно публиковать http-сервис, в подсистеме предусмотрено регламентное задание и кнопка «Обработать очереди» в справочнике «Боты».
После регистрации бота вы можете переходить к справочнику...
Чаты
– список всех чатов, о которых знает бот.
В этот справочник автоматически добавляются все пользователи и группы, от которых бот получает сообщения. И тут же есть возможность установить флаг, можно ли боту взаимодействовать с данным чатом.
Команды из чатов, с которыми боту взаимодействовать не разрешено, будут игнорироваться, кроме команды «/start», ответ на которую будет выглядеть вот так:
После того как регистрация выполнена и связь налажена, рассмотрим как работают…
Команды
– справочник поддерживаемых команд бота, которые вызываются через символ слэш.
В этом справочнике вы можете указать, какое действие (о действиях см. ниже) должно выполняться по вызову какой команды. Например, отправка ответного сообщения или вызов…
Клавиатуры
– клавиатуры в нижней части чата
С помощью справочника «Клавиатуры» можно описать иерархическое меню клавиатур и действия, которые будут выполняться по нажатии на ту или иную кнопку.
При этом если у кнопки прописано действие и есть дочерние элементы, то будет выполнено действие и показана новая, дочерняя клавиатура.
Клавиатура может быть вызвана командой ЮК_ТГ_Сервер.ПоказатьКлавиатуру
И, наконец, последний справочник – это…
Быстрые ответы
– ответ какой-то фразой и картинкой, если в сообщении найдено некое выражение, либо выполнение произвольного кода.
Выражение задается регулярным выражением, используется COMОбъект("VBScript.RegExp").
И несколько слов о справочнике…
Действия
Справочник действий содержит выполняемые ботом действия. Действие может быть нескольких типов: выполнение произвольного кода, запрос текстового значения, предложение выбора из списка и условие.
Каждое действие может ссылаться на следующее действие, а в случае с условием – на два. Благодаря этому можно организовать цепочки действий, ветвления и циклы. Что позволяет создать разветвленные опросники, анкеты и ввод произвольных данных.
Например, в демобазе по кнопке «кнопка 1» будет выполнен следующий алгоритм:
И остановимся немного подробнее на действии типа «Выбор». Вы можете предложить пользователю выбор из произвольного списка, сформированного программно. Например, из справочника:
В конце концов, после всех стандартных обработок подсистемы, вы можете самостоятельно обработать сообщение при помощи процедуры…
ЮК_ТГ_Пользовательский.ОбработатьСообщение
Процедура ОбработатьСообщение общего модуля ЮК_ТГ_Пользовательский будет вызвана после всех обработок подсистемы для входящего сообщения (по обработке очереди или webhook), и вы можете самостоятельно дополнительно обработать входящее сообщение.
Уровень интерфейса
Если все вышеописанное вам не очень нужно или вы хотите расширить существующий функционал, то вы можете воспользоваться уровнем интерфейса. Это набор функций общего модуля ЮК_ТГ_Сервер. Таких как:
- ОтправитьСообщение;
- ОтправитьКартинку;
- ОтправитьФайл
- и т.д.
Эти функции являются обертками над уровнем API самого телеграма и используются пользовательским уровнем подсистемы.
На этом уровне реализованы не все функции-обертки, предоставляемые API (расширить планируется в следующих версиях).
В модуле ЮК_ТГ_Пользовательский есть процедура ПередОбработкойОбновления, которая будет вызвана перед обработкой обновления (сообщения от телеграма) и по флагу СтандартнаяОбработка может отменить обработку сообщения стандартными процедурами подсистемы.
Если же даже это для вас лишнее, то добро пожаловать на…
Уровень API
Этот уровень представлен двумя функциями модуля ЮК_ТГ_Сервер:
ЗапросКБоту – отправляет произвольную команду боту;
ЗапросКБотуСФайлами – отправляет произвольную команду боту с файлами (формат multipart/form-data).
Эти функции используются самой подсистемой (уровнем интерфейса) и являются практически прямым вызовом POST-запроса к API телеграма.
И напоследок некоторые…
Примечания
В подсистеме предусмотрено подключение через прокси.
Настройки регламентных заданий автопинга и получения очереди можно найти в настройках подсистемы.
На уровне интерфейса и API все равно используется справочник «Боты», но можно обойтись и соответствующей структурой.
Если в функцию СообщитьОбОшибке модуля ЮК_ТГ_Сервер передать третьим параметром структуру с сообщением, то сообщение об ошибке будет выведено не только в окно служебных сообщений, но и в чат. Этим активно пользуется сама подсистема, чтобы уведомлять пользователя об ошибках.
Преобразованием текста в текст с эмодзи занимается функция ДобавитьЭмодзи. Как именно можно включить эмодзи в сообщение, написано в справке, которую можно получить по кнопке (?) при редактировании действия.
На создание подсистемы меня вдохновила публикация //infostart.ru/public/627500/
Про обнаруженные ошибки пишите на адрес me@zfilin.org.ua или в комментарии.
Так как подсистемой я пользуюсь сам в ежедневной работе, она поддерживается и будет обновляться.
Оригинал статьи в блоге автора
Спасибо за интерес к подсистеме, всем хорошего дня и хорошего кода.