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):

  1. Bloco “Iniciar” (a partir deste bloco, qualquer diagrama começa).
  2. 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.

  1. 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).
  1. 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".

  1. 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).
  1. 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ô).
  1. 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.

  1. 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).
  1. 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).
  1. 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).
  1. 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).
  1. 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ô).
  1. Bloco “Fim” (este bloco finaliza a execução do script ou retorna o diagrama do subprocesso ao processo principal).