Перейти к основному содержимому

Общая схема работы Telegram-бота

Схема работы

общая схема

Пример сценария

Сценарий: Вывод списка документов со статусом «ожидается», с возможностью выбора нужного документа.

  1. Сообщение пользователя – «Ожидается», было отправлено нажатием кнопки Ожидается.

Сообщение пользователя

  1. В команде «Список транспорта» выполнилось условие. Поэтому начнет выполняться действие «Список транспорт».

Команды телеграмм

Команды, условия ИЛИ

  1. Пример кода действия «Список транспорт»

Полный код смотри в Приложении №1**

Здесь описаны некоторые блоки:

  • Из сообщения полученного ботом берем ссылку на бота.
Бот = НакопленныеДанные.НастройкиБота.Ссылка; 
  • Записываем значение «ожидается» для параметра действия с именем «Статус».
УстановитьПараметрДействия(Бот, НакопленныеДанные.ИндентификаторЧата,
ПараметрДействия("Статус"), НРег(НакопленныеДанные.ТекстСообщения));
  • Собранные данные о списке документов помещаем в регистр для хранения данных в формате JSON, чтобы при последующих действиях по новой не собирать информацию с базы, а использовать уже подготовленную.
СтатусВыбораИмя = Нрег(НакопленныеДанные.ТекстСообщения);

// Из прислано сообщения берем текст. Т.е. переменная СтатусВыбора Имя получит значение "ожидается".

СтрокаNJSON = TelegramСервер.ЗаписьТаблицыЗначенийВJSONСтроку(СписокДокументов);
УстановитьПроизвольныйПараметр(НакопленныеДанные.НастройкиБота.Ссылка,
НакопленныеДанные.ИдентификаторЧата, "Временная таблица документов", СтрокаJSON);
  • Формируем данные для отправки сообщения и переходи к созданию клавиатур «Список транспорт», а также «Вид обработки».
Текст = СтрШаблон (НСтр("ги = '<b>Результат поиска ""%1"" (%2):<b>'"), ВидОбработки, СтатусВыбораИмя);
Сообщение = Новый Структура;
Сообщение.Вставить("Текст", Текст);
Сообщение.Вставить("ПрефиксСсылки", "/SetDocс");
Сообщение.Вставить("Клавиатура", "Список транспорт");
Сообщение.Вставить("СписокДокументов", СписокДокументов);
Сообщение.Вставить("РежимАнализаТекста", "HTML");
ОтправитьСообщение(Сообщение, НакопленныеДанные);
  • Создадим клавиатуру «Список транспорт»
    Из переданного в действии Сообщения.СписокДокументов, берем данные (текс, префикс и ключ для команды) и формируем кнопки. Эта клавиатура будет под сообщением.

Программная настройка клавиатуры

  • Создадим клавиатуру «Вид обработки».
    Эта клавиатура будет расположена под полем вводы ответа.

Программная настройка клавиатуры

  1. Результат

Проверка клавиатуры в телеграмм