Telegram Bot

Рассмотрим пример робота, который демонстрирует работу с Телеграм-ботом:

  • получение сообщений от бота;

  • ответ на сообщение;

  • сохранение присланного файла в папку с проектом.

Примечание: создание Телеграм-бота можно посмотреть в видео инструкции к блоку "Бот. Создать подключение".

Важно! Данные о подключении к Телеграм можно найти по пути: c:\Users\User\AppData\Roaming\Sherpa RPA Data\Telegram\

Видео-инструкция по созданию бота в Telegram: http://sherparpa.ru/videos/ru/telegrambot.mp4

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

  1. Блок “Старт” (с этого блока начинается любая диаграмма).

  2. Блок “Бот. Создать подключение” позволяет создать подключения для бота Telegram. Для данного блока указаны следующие свойства:

  • Токен бота (токен бота, который можно получить от BotFather в клиенте Telegram);

  • Время ожидания (время ожидания ответа от сервера Telegram в секундах).

На выходе получено “Подключение” – переменная с объектом текущего подключения к Телеграм. В остальных блоках необходимо указывать именно эту переменную.

  1. Блок “Бот. Получить сообщение” позволяет получить сообщение или обратный вызов из очереди. Если сообщений в очереди нет, то генерируется ошибка. Для данного блока указано свойство “Подключение” (объект подключения к боту. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Бот. Создать подключение" из группы Telegram, который ранее использовался для подключения к боту Telegram).

  1. Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).

Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.

Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.

$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.

В данном случае, в качестве условия установлено: $TMessage.Text=="stop". Т.е., пользователь написал Телеграм-боту "stop".

  1. Блок “Бот. Закрыть подключение” позволяет закрыть подключение к боту Telegram. Для данного блока указано свойство “Подключение” (объект подключения к боту. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Бот. Создать подключение" из группы Telegram, который ранее использовался для подключения к боту Telegram).

  1. Блок “Пауза” приостанавливает выполнение работы сценария на заданное время. Для данного блока указаны следующие свойства:

  • Единица измерения (единица измерения, в которой задана длительность паузы);

  • Длительность (значение промежутка времени в заданных единицах измерения);

  • Запустить сразу (установленный флаг включает применение задержки сразу при первом проходе этого блока с момента запуска сценария робота).

  1. Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).

Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.

Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.

$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.

В данном случае, в качестве условия установлено: $TMessage.IsFile. Т.е., проверяет, есть ли в сообщении приложенный файл.

  1. Блок “Создать файл” позволяет создать новый текстовый файл. Для данного блока указано свойство “Путь” (путь к папке, в которой располагается необходимый файл. Если данное свойство оставить пустым, то будет взята папка, в которой располагается проект. Если указать папку, то произойдет склеивание с именем файла).

  1. Блок “Бот. Скачать файл” позволяет скачать файл из сообщения. Для данного блока указаны следующие свойства:

  • Подключение (объект подключения к боту. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Бот. Создать подключение" из группы Telegram, который ранее использовался для подключения к боту Telegram);

  • Сообщение (объект сообщения. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Сообщение", блока "Бот. Получить сообщение" из группы Telegram);

  • Имя файла (имя и путь файла, в который будет сохранен файл из сообщения. Голосовые сообщения должны скачиваться в формат .ogg).

  1. Блок “Окно для ввода текста” позволяет показать модальное диалоговое окно, предназначенное для получения информации от пользователя. Для данного блока указаны следующие свойства:

  • Заголовок (текст, который будет отображен в заголовке диалогового окна. В данном случае: “Telegram”);

  • Сообщение (текст, который будет отображен внутри диалогового окна. В данном случае он задан переменной $TMessage.Text).

  1. Блок “Бот. Отправить сообщение” позволяет отправить текстовое сообщение в чат. Для данного блока указаны следующие свойства:

  • Подключение (объект подключения к боту. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Бот. Создать подключение" из группы Telegram, который ранее использовался для подключения к боту Telegram);

  • ID чата (Id чата. Данное значение получено из блока "Бот. Получить сообщение" в свойстве "Сообщение");

  • ID сообщения (ID сообщения, на которое требуется ответить. Данное значение можно получить из блока "Бот. Получить сообщение" в свойстве "Сообщение");

  • Текст (текст сообщения).

  1. Блок “Пауза” приостанавливает выполнение работы сценария на заданное время. Для данного блока указаны следующие свойства:

  • Единица измерения (единица измерения, в которой задана длительность паузы);

  • Длительность (значение промежутка времени в заданных единицах измерения);

  • Запустить сразу (установленный флаг включает применение задержки сразу при первом проходе этого блока с момента запуска сценария робота).

  1. Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).

Last updated