# Cliente do Telegram

Vamos considerar um exemplo de robô que demonstra o funcionamento com o Telegram como cliente.

**Importante!** *Os dados de conexão com o Telegram podem ser encontrados no caminho: c:\Users\User\AppData\Roaming\Sherpa RPA Data\Telegram\\*

O projeto do robô consiste em um diagrama e um arquivo no formato .mp3. Se descrevermos passo a passo, este robô funciona da seguinte maneira:

1. Cria uma conexão com o Telegram.
2. Obtém a lista de contatos.
3. Extrai a lista de todos os chats.
4. Extrai mensagens do chat em grupo.
5. Extrai mensagens do chat com o usuário.
6. Envia uma mensagem, envia um arquivo.
7. Recebe mensagens. (se a mensagem contiver um arquivo, ele o salva; se contiver apenas texto, exibe uma caixa de diálogo com esse texto).

**O diagrama do projeto** é assim (para conveniência, os blocos do diagrama estão numerados):

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

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

1. **Bloco “Início”** (a partir deste bloco começa qualquer diagrama).
2. **Bloco “Cliente. Criar conexão”** permite criar uma conexão com o Telegram na forma de cliente. Para este bloco, as seguintes propriedades são especificadas:

* Nome da sessão (nome da sessão);
* Tempo de espera (tempo de espera pela resposta do servidor Telegram em segundos).

Na saída, obtemos “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.

**Importante!** *Para manter a autorização, é necessário definir um nome de sessão único e posteriormente usá-lo para a conexão. Na primeira execução, um formulário de autorização será aberto. Para a autorização, será necessário inserir o telefone, em seguida, o serviço enviará um código que chegará ao cliente Telegram já conectado (por exemplo, no telefone). Depois, insira esse código e clique em “Autorizar”.*

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfEBZsUP-SV1SWUbHcDE-H-1eS6DrFiQB1AbVzKF-F9xrokYEjsoW__6v8JjZautTeswHc0OBcIN4RLz_LtW-GtNH3SnIpKJd7520_jxrpahSh0hNPNbJtuwMZYqTdXb6L9lDqJ?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

3. **Bloco “Cliente. Lista de contatos”** retorna a lista de contatos. Para este bloco, é especificada uma propriedade “Conexão” (objeto de conexão do cliente. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Cliente. Criar conexão" do grupo Telegram, que foi anteriormente usado para conectar o cliente Telegram). Na saída, obtemos a propriedade “Contatos” (tabela de dados contendo a lista de contatos. A tabela contém as seguintes colunas: Id, Nome de Usuário, Primeiro Nome, Último Nome, Telefone)

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcFmpytElc8Xy4c6aZA8WYcTNhUVQuXkY40AMS9LGhq2MPBgNlaIlHIK4WmWtbupps65C3AURVM_uFHjtF_AG9A3iLBYcpbmDPGe-UXmabGcQZYqewA4lg7Fo1lBgTaWerAA5w9?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

4. **Bloco “Log”** permite registrar mensagens arbitrárias e/ou valores de variáveis durante a execução do cenário do robô. Para este bloco, é especificada a propriedade “Valor”. Entre aspas, é especificada uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, registra a variável $Contacts no log.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdTm9JP5hlelaZkmrQ7vnBEMwFWkyIVyosu8c3FYRFzJvGsKKNfwmszkFm4NZM6dxra4zgB3Qf4djuodwU8qQNHgbxBbEkJjGi5E_4pU_BRPEzcP-WYvw3nHANaqLmdsweLVU3rWg?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

5. **Bloco “Cliente. Extrair mensagens”** permite extrair mensagens do chat.

**Nota:** *a extração de mensagens ocorre do último, ou seja, de baixo para cima.*

Para este bloco, as seguintes propriedades são especificadas:

* Conexão (objeto de conexão do cliente. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Cliente. Criar conexão" do grupo Telegram, que foi anteriormente usado para conectar o cliente Telegram);
* Destino (objeto de destino. Esta string pode conter os seguintes valores: Id do chat, nome do chat, Id do usuário, combinação "Primeiro Nome Último Nome" do usuário, valor do Nome de Usuário do usuário, telefone do usuário);
* Deslocamento (identificador da mensagem a partir da qual a extração começa. O valor padrão é 0, que indica a extração de mensagens a partir da mais recente);
* Quantidade (limitação na quantidade de mensagens extraídas de uma só vez).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe9-CNn93huf-1vZ7rLAFMHMO2lC649PY2vTt3_6x9nBzVM1JgQevcKnIEWM4mLOFjG6d0NEoyLpL-3ik_2oHn3GGo63WJI1Za8ouJxDAVfWr9tup96rYfyAyVUe4cNgXwy7iNr?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

6. **Bloco “Log”** permite registrar mensagens arbitrárias e/ou valores de variáveis durante a execução do cenário do robô. Para este bloco, é especificada a propriedade “Valor”. Entre aspas, é especificada uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, registra a variável $Chats no log.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfQQo3GkoKwgmDd9S5hKt8lAiMlLmcp_RzFLrNaYRdnOjtuYp0t7cA3561AtCZzHnQ54blT1YuY3C6QoGJuAiel0of3IZfRCOMljyf6SgTAZ6A9-gDQiMrWDeneN8CYwvVlPRBeYA?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

7. **Bloco “Cliente. Extrair mensagens”** permite extrair mensagens do chat. Para este bloco, as seguintes propriedades são especificadas:

* Conexão (objeto de conexão do cliente. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Cliente. Criar conexão" do grupo Telegram, que foi anteriormente usado para conectar o cliente Telegram);
* Destino (objeto de destino. Esta string pode conter os seguintes valores: Id do chat, nome do chat, Id do usuário, combinação "Primeiro Nome Último Nome" do usuário, valor do Nome de Usuário do usuário, telefone do usuário);
* Deslocamento (identificador da mensagem a partir da qual a extração começa. O valor padrão é 0, que indica a extração de mensagens a partir da mais recente);
* Quantidade (limitação na quantidade de mensagens extraídas de uma só vez).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcQj6Lv06tw9iLK88FHkpy5LOeRb-L8Uj8Od1eTZwarIX0BIbuBNENnPPx-4n4pd1sAQ7HZUuq6mQblRdjNH-zXmatKJ7u8rhRd5HDuwIU7iFiTV0iLBunWAMGREPdL-at1_m1A?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

8. **Bloco “Log”** permite registrar mensagens arbitrárias e/ou valores de variáveis durante a execução do cenário do robô. Para este bloco, é especificada a propriedade “Valor”. Entre aspas, é especificada uma constante de texto, e o nome da variável começa com o símbolo $. Ou seja, registra a variável $Messages no log.

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

9. **Bloco “Cliente. Enviar mensagem”** permite enviar uma mensagem de texto. Para este bloco, as seguintes propriedades são especificadas:

* Conexão (objeto de conexão do cliente. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Cliente. Criar conexão" do grupo Telegram, que foi anteriormente usado para conectar o cliente Telegram);\* Destino (objeto de destino. Esta string pode conter os seguintes valores: Id do chat, nome do chat, Id do usuário, combinação "FirstName LastName" do usuário, valor do Username do usuário, telefone do usuário);
* Permitir importação (a flag definida permite tentar importar o usuário para os contatos, se ele não for encontrado. Esta funcionalidade está disponível se, como "Destino", for fornecido um número de telefone registrado no Telegram. Somente após isso será possível enviar mensagens ao usuário pelo seu telefone);
* Texto (texto da mensagem).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeOoFYEfytgJ4BR1BQroum0nIktd_BYAQiKW55b3l2ZCTvMh5qqQzlusdIMG8b6AOe7Bo4frQL9J77j1W0JfsFE0v1-tXfecj5sshRC8Ljd0_3KGuCsrG7ZimTe8ti3VCDayA8q?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

10. **Bloco “Cliente. Enviar arquivo”** permite enviar um arquivo, neste caso “test.mp3”. Para este bloco, as seguintes propriedades são especificadas:

* Conexão (objeto de conexão do cliente. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Cliente. Criar conexão" do grupo Telegram, que foi anteriormente usado para conectar o cliente Telegram);
* Destino (objeto de destino. Esta string pode conter os seguintes valores: Id do chat, nome do chat, Id do usuário, combinação "FirstName LastName" do usuário, valor do Username do usuário, telefone do usuário);
* Nome do arquivo (nome e caminho do arquivo que será enviado).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcDeF2FmKsYLyOQ7bjwAOFqB7QhxPtID-qJFmRoWVlDcs4ofGK9qHnXJyywvkj8zcm1Q9nBmymD_uYtZB2DRmwgqYhuU_YKbt_ETaA5D5Oiq49XzZN6HUOmGM5LQ-RYrrtTH3GD_A?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

11. **Bloco “Cliente. Receber mensagem”** permite receber uma mensagem da fila. Para este bloco, a propriedade “Conexão” é especificada (objeto de conexão do cliente. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Cliente. Criar conexão" do grupo Telegram, que foi anteriormente usado para conectar o cliente Telegram). Na saída, é recebida “Mensagem” (um objeto de mensagem é retornado. Propriedades disponíveis: Id - id da mensagem; Data - data; De - de quem é a mensagem; Para - para quem é a mensagem; FromId - Id do usuário de quem é a mensagem; Título - nome do chat; Texto - texto da mensagem; Tipo - designação textual do tipo de mensagem; IsFile - indica se há um arquivo na mensagem (aqui é possível definir mais precisamente o tipo usando as propriedades IsDocument, IsPhoto). Por exemplo: $TMessage.IsPhoto - se for igual a $true, então há uma foto na mensagem)

**Nota:** *se não houver mensagens na fila, um erro é gerado.*

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfsjRn2XJ3nNtydpuBaJvRNQIOSpiwwpz86-KoATce7IVgRq667HzS-Mo-aOhBsLlMN5ioYrurcCEIvFoynBZvxQawS7Xxi9uPXeON17IYvD9WfN_b-jzVtVKN3sFbT4WpuzgqHBw?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

12. **Bloco “Pausa”** pausa 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_4nXd9_866ERuDG15RzCLhFGvwAurbzQAI0lzi9APfQxHC5g66TuWRboUb4vLrbDTjM8ZjH2KNMUGWZbhripKqrBoFxXdrV-YsF1gBW-lxGc9GPEIfcx9ORIzoGdTOKV8PlG1x_u6eaQ?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

13. **Bloco “Condição”** verifica a condição especificada para ver se é verdadeira, após o que a execução do script continua na saída “Sim” (se a condição for atendida) ou na saída “Não” (se a condição não for atendida).

A condição é escrita no formato: “variável” igual a (==)/ maior que (>)/ menor que (<) “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, se há a palavra "stop" no texto da mensagem.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfetvGdQh1RBAn6_QxmnDu-YVINpLpUETdL-eow5ssPae1kTPCXSeBF8tPVaAJprEsdJbMr_cae656kWQeOcmhS0_Ny6cBJzxBUYRxwYM4tuLyUifBt59Hzi6FYc_AgYyFBVOCFaQ?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

14. **Bloco “Cliente. Fechar conexão”** permite fechar a conexão do cliente. Para este bloco, uma propriedade é especificada – “Conexão” (objeto de conexão do cliente. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Cliente. Criar conexão" do grupo Telegram, que foi anteriormente usado para conectar o cliente Telegram).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdDa91e0EquIwRY1ZntFjdRf5dC-91hn3LUqjacjJ_L3kgQbXERDi2zFdxSW3AViUySJIkMjF6Q-SXQdBuwq7-C6RXfCMz1yfhZBheOSsvXrQK7rZIwM1z0xYAMx7mQrdiCmk0p7A?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

15. **Bloco “Condição”** verifica a condição especificada para ver se é verdadeira, após o que a execução do script continua na saída “Sim” (se a condição for atendida) ou na saída “Não” (se a condição não for atendida).

A condição é escrita no formato: “variável” igual a (==)/ maior que (>)/ menor que (<) “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_4nXcBPBjszGJWlbzTtIY2DzwI2DmLC1pbJaUf89xAsqfdGKq2hXY59IpTo1eKNVZa8XK32A-i8TocRCGtlbknVBzYevfEIc35L7MXo6UB3Lam3orqoGFp8Qmz5IlW2yOKZ_r9myG5wQ?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

16. **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_4nXebWNvbfIE32GYSqXxsRrKU4a1Hdjw3V9Rd5TLyLTeMmupf_W5BduuupvEabnxUsOt2UF1UxCriF0W6nrGmT6W9W-3byWRxctuI9qkIEpyGdyBZD3jzljB7gezFvjS3oHCoM-xRVQ?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

17. **Bloco “Cliente. Baixar arquivo”** permite baixar um arquivo de uma mensagem. Para este bloco, as seguintes propriedades são especificadas:

* Conexão (objeto de conexão do cliente. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Cliente. Criar conexão" do grupo Telegram, que foi anteriormente usado para conectar o cliente Telegram);
* Mensagem (objeto de mensagem. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Mensagem" do bloco "Cliente. Receber mensagem" ou do array da propriedade "Mensagens" do bloco "Cliente. Exportar mensagens" do grupo Telegram);
* Nome do arquivo (nome e caminho do arquivo onde o arquivo da mensagem será salvo).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfPN92M1HrbsqIEV40vw68T092xf361Q3FkF0xT6r7SlUXNMldo_Cm_RTcrLcwmQk8jOhLn1LuWaV5UYpCKddQzuAbjwGDRiDLbl3Bs_NUSS5HF_DM7BRc0rvyUi4h_Nc-ycmrqNA?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

18\. \*\*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_4nXeTNB8BIkiHjnSlsNozPvyQsnuO52Eu1o7Guv-p2NE8WhK2sGA7qjIaVklMBSTS-4kKheOJzRsqLu6uLkccUb28dCZmASx_G21mBUY-LSjGuQOWB_XoRfNUqYd7ixldGDxLmtUHhg?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

19. **Bloco "Cliente. Enviar mensagem"** permite enviar uma mensagem de texto. Para este bloco, as seguintes propriedades são especificadas:

* Conexão (objeto de conexão do cliente. O nome da variável nesta propriedade deve coincidir com o nome da variável na propriedade "Conexão", do bloco "Cliente. Criar conexão" do grupo Telegram, que foi anteriormente utilizado para conectar o cliente Telegram);
* Destino (objeto de destino. Esta string pode conter os seguintes valores: Id do chat, nome do chat, Id do usuário, combinação "FirstName LastName" do usuário, valor Username do usuário, telefone do usuário);
* Permitir importação (a flag definida permite tentar importar o usuário para os contatos, se ele não for encontrado. Esta possibilidade está disponível se, como “Destino”, for definido um número de telefone que está registrado no Telegram. Somente após isso será possível enviar mensagens para o usuário pelo seu telefone);
* Texto (texto da mensagem).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXendbYfPyL-NgLO_bfP99aCrSG6wmZ9QK2wYIcEPTqjGwTfQYJ_uEyLS57dFbYvBktFRPTzBXMOF7GT6sc7z5T84A6oc_LmDikt1iV6_gbNFugs0x7fe5sediX6Clck_mPlE0gB?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

20. **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_4nXftEIQowakugkMdWOm3fC9RPFqtGaG0i1iYH80Wu2ox43IyRNGydqS-iPCcRM7JshtzEehYlGvQo15C--5kSMoAXBPdJEOqeWJIbcCtTS0hRHLLnNAr8ULwklEbda40dsm8MlpJUg?key=eIuXXe1wcakZ5HVC8JFqa2bC" alt=""><figcaption></figcaption></figure>

\
21\. **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-client.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.
