Como Enviar Mensagens Automatizadas no Telegram via Bot API em Python

Como Enviar Mensagens Automatizadas no Telegram via Bot API em Python

Notificações instantâneas são fundamentais para o monitoramento de servidores, alertas de sistemas e automações de fluxos de trabalho. Este script em Python utiliza a biblioteca requests para enviar mensagens de texto diretamente para um canal ou conversa do Telegram através de um Bot oficial. A solução resolve a necessidade de integração rápida com alertas sem a complexidade de gerenciar bibliotecas pesadas de terceiros.

Python
import requests

def enviar_mensagem_telegram(bot_token: str, chat_id: str, mensagem: str) -> bool:
    """Envia uma mensagem de texto para um chat ou canal do Telegram via Bot API."""
    url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
    
    # Payload com os parâmetros obrigatórios da API
    payload = {
        "chat_id": chat_id,
        "text": mensagem,
        "parse_mode": "HTML"  # Permite uso de tags como <b>bold</b> e <i>italic</i>
    }

    try:
        # Requisição POST com timeout para evitar bloqueio da aplicação
        resposta = requests.post(url, json=payload, timeout=10)
        resposta.raise_for_status()
        
        print("Mensagem enviada com sucesso para o Telegram!")
        return True

    except requests.exceptions.RequestException as e:
        print(f"Falha ao enviar mensagem no Telegram: {e}")
        return False

# --- Exemplo de uso prático ---
if __name__ == "__main__":
    # Substitua pelos dados do seu Bot e do seu Chat ID
    TOKEN_DO_BOT = "123456789:ABCdefGHIjklMNOpqrsTUVwxyZ"
    CHAT_ID_DESTINO = "987654321"

    # Mensagem formatada com suporte a HTML
    texto_alerta = (
        "<b>🚨 ALERTA DE SISTEMA</b>\n\n"
        "O backup diário foi concluído com sucesso.\n"
        "<i>Servidor: SRV-PROD-01</i>"
    )

    enviar_mensagem_telegram(TOKEN_DO_BOT, CHAT_ID_DESTINO, texto_alerta)

Pontos-chave

  • Obtenção do Token e Chat ID: O token é gerado ao criar o bot com o @BotFather no Telegram. O chat_id pode ser de um usuário, grupo ou canal (para canais públicos, utilize o formato @nome_do_canal).

  • Endpoint sendMessage: É o método padrão da Bot API do Telegram para envio de dados textuais.

  • Formatação de Texto com parse_mode: Aceita os valores "HTML" ou "MarkdownV2", permitindo formatar o texto com negrito, itálico, links e blocos de código diretamente na mensagem.

  • Uso do Parâmetro json no requests.post: Envia os dados no formato application/json, o que garante o tratamento correto de caracteres especiais, emojis e quebras de linha (\n).

  • Segurança de Credenciais: Nunca inclua o bot_token diretamente no código do seu repositório. Em ambientes de produção, armazene essa informação em variáveis de ambiente com o módulo os.getenv().

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

Python para Computação Quântica: Introdução com Qiskit

C# e Banco de Dados: Como Conectar e Realizar Operações com SQL Server