Telegram Bot#
Vamos considerar um exemplo de robô que demonstra o trabalho com um bot do Telegram:
- recebendo mensagens do bot;
- respondendo a uma mensagem;
- salvando o arquivo enviado na pasta do projeto.
Nota: a criação de um bot do Telegram pode ser vista no vídeo da instrução do bloco "Bot. Criar conexão".
Importante! Os dados de conexão com o Telegram podem ser encontrados no caminho: c:\Users\User\AppData\Roaming\Sherpa RPA Data\Telegram\
Vídeo-instrução sobre como criar um bot no Telegram: http://sherparpa.ru/videos/ru/telegrambot.mp4
Diagrama principal do projeto se parece com isso (para conveniência, os blocos do diagrama estão numerados):
- Bloco “Iniciar” (a partir deste bloco, qualquer diagrama começa).
- Bloco “Bot. Criar conexão” permite criar conexões para o bot do Telegram. Para este bloco, as seguintes propriedades são especificadas:
- Token do bot (token do bot que pode ser obtido do BotFather no cliente do Telegram);
- Tempo de espera (tempo de espera pela resposta do servidor do Telegram em segundos).
A saída é “Conexão” – uma variável com o objeto da conexão atual com o Telegram. Nos outros blocos, é necessário especificar exatamente esta variável.
- Bloco “Bot. Receber mensagem” permite receber uma mensagem ou callback da fila. Se não houver mensagens na fila, um erro é gerado. Para este bloco, a propriedade “Conexão” é especificada (objeto de conexão com o bot. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Bot. Criar conexão" do grupo Telegram, que foi usado anteriormente para conectar ao bot do Telegram).
- Bloco “Condição” verifica a condição especificada para ver se é verdadeira, após o que a execução do script continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).
A condição é escrita no formato: “variável” é igual (==)/ maior (>)/ menor (<) “valor”.
Por exemplo: $a == “Olá”, ou seja, se o valor da variável $a for igual a “Olá”, então a saída é “Sim”, caso contrário – a saída é “Não”.
$Result > 5, ou seja, se o valor da variável $Result for menor que 5, então a saída é “Sim”, caso contrário – a saída é “Não”.
Neste caso, a condição estabelecida é: $TMessage.Text=="stop". Ou seja, o usuário escreveu para o bot do Telegram "stop".
- Bloco “Bot. Fechar conexão” permite fechar a conexão com o bot do Telegram. Para este bloco, a propriedade “Conexão” é especificada (objeto de conexão com o bot. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Bot. Criar conexão" do grupo Telegram, que foi usado anteriormente para conectar ao bot do Telegram).
- Bloco “Pausa” suspende a execução do script por um tempo determinado. Para este bloco, as seguintes propriedades são especificadas:
- Unidade de medida (unidade de medida na qual a duração da pausa é especificada);
- Duração (valor do intervalo de tempo nas unidades de medida especificadas);
- Iniciar imediatamente (a flag definida ativa a aplicação da pausa imediatamente na primeira passagem deste bloco desde o início do script do robô).
- Bloco “Condição” verifica a condição especificada para ver se é verdadeira, após o que a execução do script continua na direção da saída “Sim” (se a condição for atendida) ou na direção da saída “Não” (se a condição não for atendida).
A condição é escrita no formato: “variável” é igual (==)/ maior (>)/ menor (<) “valor”.
Por exemplo: $a == “Olá”, ou seja, se o valor da variável $a for igual a “Olá”, então a saída é “Sim”, caso contrário – a saída é “Não”.
$Result > 5, ou seja, se o valor da variável $Result for menor que 5, então a saída é “Sim”, caso contrário – a saída é “Não”.
Neste caso, a condição estabelecida é: $TMessage.IsFile. Ou seja, verifica se há um arquivo anexado na mensagem.
- Bloco “Criar arquivo” permite criar um novo arquivo de texto. Para este bloco, a propriedade “Caminho” é especificada (caminho para a pasta onde o arquivo necessário está localizado. Se esta propriedade for deixada em branco, a pasta onde o projeto está localizado será utilizada. Se uma pasta for especificada, ocorrerá a concatenação com o nome do arquivo).
- Bloco “Bot. Baixar arquivo” permite baixar um arquivo de uma mensagem. Para este bloco, as seguintes propriedades são especificadas:
- Conexão (objeto de conexão com o bot. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Bot. Criar conexão" do grupo Telegram, que foi usado anteriormente para conectar ao bot do Telegram);
- Mensagem (objeto da mensagem. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Mensagem", do bloco "Bot. Receber mensagem" do grupo Telegram);
- Nome do arquivo (nome e caminho do arquivo onde o arquivo da mensagem será salvo. Mensagens de voz devem ser baixadas no formato .ogg).
- Bloco “Janela para entrada de texto” permite mostrar uma janela de diálogo modal, destinada a obter informações do usuário. Para este bloco, as seguintes propriedades são especificadas:
- Título (texto que será exibido no título da janela de diálogo. Neste caso: “Telegram”);
- Mensagem (texto que será exibido dentro da janela de diálogo. Neste caso, ele é definido pela variável $TMessage.Text).
- Bloco “Bot. Enviar mensagem” permite enviar uma mensagem de texto no chat. Para este bloco, as seguintes propriedades são especificadas:
- Conexão (objeto de conexão com o bot. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Bot. Criar conexão" do grupo Telegram, que foi anteriormente utilizado para conectar ao bot Telegram);
- ID do chat (Id do chat. Este valor é obtido do bloco "Bot. Receber mensagem" na propriedade "Mensagem");
- ID da mensagem (ID da mensagem à qual se deve responder. Este valor pode ser obtido do bloco "Bot. Receber mensagem" na propriedade "Mensagem");
- Texto (texto da mensagem).
- Bloco “Pausa” suspende a execução do script por um tempo determinado. Para este bloco, as seguintes propriedades são especificadas:
- Unidade de medida (unidade de medida na qual a duração da pausa é especificada);
- Duração (valor do intervalo de tempo nas unidades de medida especificadas);
- Iniciar imediatamente (flag definida que ativa a aplicação da pausa imediatamente na primeira passagem deste bloco desde o início do script do robô).
- Bloco “Fim” (este bloco finaliza a execução do script ou retorna o diagrama do subprocesso ao processo principal).