Como conversar no Telegram de forma programática

Tem interesse em fazer um chatbot ou automatizar atividades que possam te notificar pelo celular?

O Telegram expõe suas APIs de forma gratuita e com isso podemos criar programas e utilizar suas funcionalidades, basta utilizar sua criatividade. Para isso é necessário acessar o https://my.telegram.org.

Informe o seu número de telefone em formato internacional. Por exemplo, no Brasil, acrescentar +55. Então o número: (12) 34567-8901, ficaria: +5512345678901.

Você receberá uma senha pelo Telegram com o texto: Web login code. Não passe esse código para ninguém, pois com esse código, é possível até deletar a conta.
Cada vez que você tentar fazer o login ele irá gerar uma nova senha e enviar no seu Telegram.

Selecione a opção "API development tools" para criar uma aplicação.

Informe os dados da aplicação e clique em Create application. Evite colocar acentuação nos primeiros campos, tive alguns problemas por conta disso.

Você irá receber algumas informações importantes… anote-as, clique em "Save changes".

Em nosso projeto, nós vamos utilizar uma biblioteca python para facilitar a manipulação das APIs do Telegram. Essa biblioteca chama-se Telethon. Para usá-la é necessário ter o python 3 instalado, incluindo o pip. É interessante criar um Ambiente virtual para poder trabalhar.

Para instalar a biblioteca digite o seguinte comando:

pip3 install telethon

Crie um arquivo python com o seguinte conteúdo:

from telethon import TelegramClient, events, sync

api_id = <coloque o api_id>
api_hash = '<coloque o api_hash>'

client = TelegramClient('umasessao', api_id, api_hash)
client.start()

client.send_message('thiagovespa', 'Olá. Estou testando o envio de mensagem do Telegram')

Substituia a api_id e a api_hash com os valores obtidos nas etapas anteriores. E execute o arquivo python. A última linha envia uma mensagem para o usuário thiagovespa. No primeiro acesso ele irá solicitar as seu telefone, um códio recebido pelo Telegram e sua senha:

Please enter your phone (or bot token): +55<seu telegram>
Please enter the code you received: <código recebido>
Please enter your password: <senha>

Após informar, um arquivo de sessão do SQLite será criado e você pode executar utilizando a mesma sessão e aí a senha não será mais solicitada.

Para outras funções, consulte a documentação.

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6