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

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcrtMI_AbXcmjfypr9h3DEkgqri42Ac_wkH3uEjxyEBRQe2HX0r74fBZlQtXsuE3vTrm5SqJvgJKS1rPwKuhiEqKnimQ48VdG8I4pSoIoP2LfA9s0c_Eco989r_tacSvNPNsrx7Iw?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcfO_b95eQxdP5FC7N-w7MOMPuLFZirldO1epYLQMLsDIkKxLy9zK37q4sk2nAasMfF_QaQxHgMW2Py4LRmOD6x5ZTOE85656ZgoIu8GpQ8MaFqm5S-jvz4TA25DDmlaKxi85C0Qg?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

3. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdpg9y0oRd4iaFqVd9YvOWexDnP4KGuINrM-DWMAQc9kxUORPOANKz33USwPnRWCKqAfmCvaigsdamHd7ieBIcqNIBGBNSyZqP68LXQiw8icyYekVbjzGDJg4RUipylIiXX9qqzgw?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

4. **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".

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfG89LvD9netT91TdgCzoijpUe2qrHzJN4T45KMY9jGY16x7yxTA7ecaVHRZCqRBVFJDkgWrkBge8H5dtfrzaXv4MlbPkWDidFG9dTUL0zt4McO0vXUo7ejKlQclrWeDWtnK_X0HQ?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

5. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcSbe-LNHt0JJrgvu3Llfz1rOJ77tJxOPnwtE7TQXxVycGxLeXcrN720tIQnWRUbyzSPeAsgDEZUgBsbWQ7YW6dfG3JqEr0JqkTWtj9PCBRUtpJiD917_6enV2Xpi6DGkFAmFLrcA?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

6. **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ô).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdt4ggzf2NyZ45dBTSIeFskhtQsielfmlRGlIvpeme07d7g__9BPmSIL3ipbczNIAF1SCcDoAZ1nFIFwURUIwRkaT8Bl5O6SU025luiWICGzYPXrXEN4a3vW9XS7qzs5xCyMD-NfQ?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

7. **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.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf55H5o9boIuS6tlc5bq_hbKELOggDBdCMGfdgPNNQ5LhHyghnaHumeWXG591dIgnzuGW1CqDf5p4tT2gRjQ6XlPMeN6ccFvx8QxQkrmHktcWn1-iA9B-hbYbObIMa4DyhY4kAb?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

8. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdP5CmVRgbZaGxjj52i9X_rqq7xTkvywKd3bH1WnhqUODVZ16Ea5bzUlQyjBIncvO-rXYjLcT_YfXPW57hcZFGuKZdCLyhaOTASMDhg2zbQeGKRmrJ6Xroh86_fRCNCQztMC1Ogjw?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

9. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd2HeJ40DAzTnyL-BhnbpGjM4v64Lh95hw_HofY7X0vmMedcIOiqaUDbyzPag9IXwP6kGndooUPTDNOTjJuc4eOorMCZRyei_wFIxYuFN6zKsOWipAZIRSvPEILCjABazrbS_Z99g?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

10. **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).

  <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcfdOU-RXo77_qIaIW8V8L3mzsis2Nx3kH-weV3yf1uJV4utpNsyHrJXJCYf_vZKDMRRRTUJ5-rfs4F-hLA5cGjBWyGnIwZ7e_1M0vSkMbtB2tVZ1Nqia84OC69ULzBR5hWj5Hg9w?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

11. **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).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdkQp9_WTCRrDV8fQuTSGBka9BfnNY2EdfCzU9NQGAQAvqXruZTyye-TEGp1w8NQr-aq-1f0QW0YWkD5wH9D9Sj9Tc9pg4drCAMIZ8YwExtxWLVLz5DxMAnY8FF5sapG1x1XpLD?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

12. **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ô).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdDVVa1MB9t37-KMFfEUcRUDXKIycu-MA5v8N0YJEmJ1xqBhGVTAIPFenesGSSpTS1cS1f0RrzAVM2WkZ0fHvLwotVpz4C5NWTlKveKHu6hIaMyGPtLlee9Ofna7_bEpbN9b1AlNw?key=30LNZh35UC4eIWihhlpMcBJd" alt=""><figcaption></figcaption></figure>

13. **Bloco “Fim”** (este bloco finaliza a execução do script ou retorna o diagrama do subprocesso ao processo principal).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/pt/sherpa-rpa/sherpa-designer/primery-robotov/telegram-bot.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
