Telegram Bot
Last updated
Last updated
Рассмотрим пример робота, который демонстрирует работу с Телеграм-ботом:
получение сообщений от бота;
ответ на сообщение;
сохранение присланного файла в папку с проектом.
Примечание: создание Телеграм-бота можно посмотреть в видео инструкции к блоку "Бот. Создать подключение".
Важно! Данные о подключении к Телеграм можно найти по пути: c:\Users\User\AppData\Roaming\Sherpa RPA Data\Telegram\
Видео-инструкция по созданию бота в Telegram: http://sherparpa.ru/videos/ru/telegrambot.mp4
Основная диаграмма проекта выглядит так (для удобства блоки диаграммы пронумерованы):
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Бот. Создать подключение” позволяет создать подключения для бота Telegram. Для данного блока указаны следующие свойства:
Токен бота (токен бота, который можно получить от BotFather в клиенте Telegram);
Время ожидания (время ожидания ответа от сервера Telegram в секундах).
На выходе получено “Подключение” – переменная с объектом текущего подключения к Телеграм. В остальных блоках необходимо указывать именно эту переменную.
Блок “Бот. Получить сообщение” позволяет получить сообщение или обратный вызов из очереди. Если сообщений в очереди нет, то генерируется ошибка. Для данного блока указано свойство “Подключение” (объект подключения к боту. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Бот. Создать подключение" из группы Telegram, который ранее использовался для подключения к боту Telegram).
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $TMessage.Text=="stop". Т.е., пользователь написал Телеграм-боту "stop".
Блок “Бот. Закрыть подключение” позволяет закрыть подключение к боту Telegram. Для данного блока указано свойство “Подключение” (объект подключения к боту. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Бот. Создать подключение" из группы Telegram, который ранее использовался для подключения к боту Telegram).
Блок “Пауза” приостанавливает выполнение работы сценария на заданное время. Для данного блока указаны следующие свойства:
Единица измерения (единица измерения, в которой задана длительность паузы);
Длительность (значение промежутка времени в заданных единицах измерения);
Запустить сразу (установленный флаг включает применение задержки сразу при первом проходе этого блока с момента запуска сценария робота).
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $TMessage.IsFile. Т.е., проверяет, есть ли в сообщении приложенный файл.
Блок “Создать файл” позволяет создать новый текстовый файл. Для данного блока указано свойство “Путь” (путь к папке, в которой располагается необходимый файл. Если данное свойство оставить пустым, то будет взята папка, в которой располагается проект. Если указать папку, то произойдет склеивание с именем файла).
Блок “Бот. Скачать файл” позволяет скачать файл из сообщения. Для данного блока указаны следующие свойства:
Подключение (объект подключения к боту. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Бот. Создать подключение" из группы Telegram, который ранее использовался для подключения к боту Telegram);
Сообщение (объект сообщения. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Сообщение", блока "Бот. Получить сообщение" из группы Telegram);
Имя файла (имя и путь файла, в который будет сохранен файл из сообщения. Голосовые сообщения должны скачиваться в формат .ogg).
Блок “Окно для ввода текста” позволяет показать модальное диалоговое окно, предназначенное для получения информации от пользователя. Для данного блока указаны следующие свойства:
Заголовок (текст, который будет отображен в заголовке диалогового окна. В данном случае: “Telegram”);
Сообщение (текст, который будет отображен внутри диалогового окна. В данном случае он задан переменной $TMessage.Text).
Блок “Бот. Отправить сообщение” позволяет отправить текстовое сообщение в чат. Для данного блока указаны следующие свойства:
Подключение (объект подключения к боту. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Бот. Создать подключение" из группы Telegram, который ранее использовался для подключения к боту Telegram);
ID чата (Id чата. Данное значение получено из блока "Бот. Получить сообщение" в свойстве "Сообщение");
ID сообщения (ID сообщения, на которое требуется ответить. Данное значение можно получить из блока "Бот. Получить сообщение" в свойстве "Сообщение");
Текст (текст сообщения).
Блок “Пауза” приостанавливает выполнение работы сценария на заданное время. Для данного блока указаны следующие свойства:
Единица измерения (единица измерения, в которой задана длительность паузы);
Длительность (значение промежутка времени в заданных единицах измерения);
Запустить сразу (установленный флаг включает применение задержки сразу при первом проходе этого блока с момента запуска сценария робота).
Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).