Telegram client
Last updated
Last updated
Рассмотрим пример робота, который демонстрирует работу с Телеграмом в качестве клиента.
Важно! Данные о подключении к Телеграм можно найти по пути: c:\Users\User\AppData\Roaming\Sherpa RPA Data\Telegram\
Проект робота состоит из одной диаграммы и файла в формате .mp3. Если описывать пошагово, то данный робот работает следующим образом:
Создает подключение к Telegram.
Получает список контактов.
Выгружает список всех чатов.
Выгружает сообщения из группового чата.
Выгружает сообщения из чата с пользователем.
Отправляет сообщение, отправляет файл.
Получает сообщения. (если в сообщении есть файл, то сохраняет его, а если только текст, то выводит диалоговое окно с этим текстом).
Диаграмма проекта выглядит так (для удобства блоки диаграммы пронумерованы):
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Клиент. Создать подключение” позволяет создать подключение к Telegram в виде клинета. Для данного блока указаны следующие свойства:
Имя сессии (имя сессии);
Время ожидания (время ожидания ответа от сервера Telegram в секундах).
На выходе получено “Подключение” – переменная с объектом текущего подключения к Телеграм. В остальных блоках необходимо указывать именно эту переменную.
Важно! Для сохранения авторизации необходимо задать уникальное имя сессии и впоследствии для подключения использовать его. При первом запуске откроется форма авторизации. Для авторизации необходимо будет ввести телефон, затем сервис отправит код, который придет в уже подключенный клиент Telegram (например на телефоне). Затем ввести этот код и нажать “Авторизоваться”.
Блок “Клиент. Список контактов” возвращается список контактов. Для данного блока указано одно свойство “Подключение” (объект подключения клиента. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Клиент. Создать подключение" из группы Telegram, который ранее использовался для подключения клиента Telegram). На выходе получено свойство “Контакты” (таблица данных, содержащая список контактов. Таблица содержит следующие колонки: Id, Username, FirstName, LastName, Phone)
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., выводит переменную $Contacts в лог.
Блок “Клиент. Выгрузить сообщения” позволяет выгрузить сообщения из чата.
Примечание: выгрузка сообщений происходит с последнего, т.е. снизу вверх.
Для данного блока указаны следующие свойства:
Подключение (объект подключения клиента. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Клиент. Создать подключение" из группы Telegram, который ранее использовался для подключения клиента Telegram);
Назначение (объект назначения. Данная строка может содержать следующие значения: Id чата, название чата, Id пользователя, комбинацию "FirstName LastName" пользователя, значение Username пользователя, телефон пользователя);
Смещение (идентификатор сообщения, с которого начинается выгрузка. По умолчанию установлено значение 0, что обозначает загрузку сообщений с самого последнего);
Количество (ограничение на количество выгружаемых сообщений за один раз).
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., выводит переменную $Chats в лог.
Блок “Клиент. Выгрузить сообщения” позволяет выгрузить сообщения из чата. Для данного блока указаны следующие свойства:
Подключение (объект подключения клиента. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Клиент. Создать подключение" из группы Telegram, который ранее использовался для подключения клиента Telegram);
Назначение (объект назначения. Данная строка может содержать следующие значения: Id чата, название чата, Id пользователя, комбинацию "FirstName LastName" пользователя, значение Username пользователя, телефон пользователя);
Смещение (идентификатор сообщения, с которого начинается выгрузка. По умолчанию установлено значение 0, что обозначает загрузку сообщений с самого последнего);
Количество (ограничение на количество выгружаемых сообщений за один раз).
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., выводит переменную $Messages в лог.
Блок “Клиент. Отправить сообщение” позволяет отправить текстовое сообщение. Для данного блока указаны следующие свойства:
Подключение (объект подключения клиента. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Клиент. Создать подключение" из группы Telegram, который ранее использовался для подключения клиента Telegram);
Назначение (объект назначения. Данная строка может содержать следующие значения: Id чата, название чата, Id пользователя, комбинацию "FirstName LastName" пользователя, значение Username пользователя, телефон пользователя);
Разрешить импорт (установленный флаг позволяет произвести попытку импорта пользователя в контакты, если он не найден. Данная возможность доступна,если в качестве “Назначения” задан номер телефона, который зарегистрирован в Телеграм. Только после этого появится возможность отправлять сообщения пользователю по его телефону);
Текст (текст сообщения).
Блок “Клиент. Отправить файл” позволяет отправить файл, в данном случае “test.mp3”. Для данного блока указаны следующие свойства:
Подключение (объект подключения клиента. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Клиент. Создать подключение" из группы Telegram, который ранее использовался для подключения клиента Telegram);
Назначение (объект назначения. Данная строка может содержать следующие значения: Id чата, название чата, Id пользователя, комбинацию "FirstName LastName" пользователя, значение Username пользователя, телефон пользователя);
Имя файла (имя и путь к файлу, который будет отправлен).
Блок “Клиент. Получить сообщение” позволяет получить сообщение из очереди. Для данного блока указано свойство “Подключение” (объект подключения клиента. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Клиент. Создать подключение" из группы Telegram, который ранее использовался для подключения клиента Telegram). На выходе получено “Сообщение” (возвращается объект сообщения. Доступные свойства: Id - id сообщения; Date - дата; From - от кого сообщение; To - кому сообщение; FromId - Id пользователя от кого сообщение; Title - название чата; Text - текст сообщения; Type - текстовое обозначение типа сообщения; IsFile - указывает, есть ли в сообщении файл (здесь можно более точно определить тип с помощью свойств IsDocument, IsPhoto). Например: $TMessage.IsPhoto - если равно $true, то в сообщении есть фото)
Примечание: если сообщений в очереди нет, то генерируется ошибка.
Блок “Пауза” приостанавливает выполнение работы сценария на заданное время. Для данного блока указаны следующие свойства:
Единица измерения (единица измерения, в которой задана длительность паузы);
Длительность (значение промежутка времени в заданных единицах измерения);
Запустить сразу (установленный флаг включает применение задержки сразу при первом проходе этого блока с момента запуска сценария робота).
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $TMessage.Text=="stop". Т.е., есть ли в тексте сообщения слово "stop".
Блок “Клиент. Закрыть подключение” позволяет закрыть подключение клиента. Для данного блока указано одно свойство – “Подключение” (объект подключения клиента. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Клиент. Создать подключение" из группы Telegram, который ранее использовался для подключения клиента Telegram).
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $TMessage.IsFile. Т.е., проверяет, есть ли в сообщении приложенный файл.
Блок “Создать файл” позволяет создать новый текстовый файл. Для данного блока указано свойство “Путь” (путь к папке, в которой располагается необходимый файл. Если данное свойство оставить пустым, то будет взята папка, в которой располагается проект. Если указать папку, то произойдет склеивание с именем файла).
Блок “Клиент. Скачать файл” позволяет скачать файл из сообщения. Для данного блока указаны следующие свойства:
Подключение (объект подключения клиента. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Клиент. Создать подключение" из группы Telegram, который ранее использовался для подключения клиента Telegram);
Сообщение (объект сообщения. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Сообщение" блока "Клиент. Получить сообщение" или из массива свойства "Сообщения" блока "Клиент. Выгрузить сообщения" из группы Telegram);
Имя файла (имя и путь файла, в который будет сохранен файл из сообщения).
Блок “Окно для ввода текста” позволяет показать модальное диалоговое окно, предназначенное для получения информации от пользователя. Для данного блока указаны следующие свойства:
Заголовок (текст, который будет отображен в заголовке диалогового окна. В данном случае: “Telegram”);
Сообщение (текст, который будет отображен внутри диалогового окна. В данном случае он задан переменной $TMessage.Text).
Блок “Клиент. Отправить сообщение” позволяет отправить текстовое сообщение. Для данного блока указаны следующие свойства:
Подключение (объект подключения клиента. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Клиент. Создать подключение" из группы Telegram, который ранее использовался для подключения клиента Telegram);
Назначение (объект назначения. Данная строка может содержать следующие значения: Id чата, название чата, Id пользователя, комбинацию "FirstName LastName" пользователя, значение Username пользователя, телефон пользователя);
Разрешить импорт (установленный флаг позволяет произвести попытку импорта пользователя в контакты, если он не найден. Данная возможность доступна,если в качестве “Назначения” задан номер телефона, который зарегистрирован в Телеграм. Только после этого появится возможность отправлять сообщения пользователю по его телефону);
Текст (текст сообщения).
Блок “Пауза” приостанавливает выполнение работы сценария на заданное время. Для данного блока указаны следующие свойства:
Единица измерения (единица измерения, в которой задана длительность паузы);
Длительность (значение промежутка времени в заданных единицах измерения);
Запустить сразу (установленный флаг включает применение задержки сразу при первом проходе этого блока с момента запуска сценария робота).
21. Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).