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
@BotFatherno Telegram. Ochat_idpode 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
jsonnorequests.post: Envia os dados no formatoapplication/json, o que garante o tratamento correto de caracteres especiais, emojis e quebras de linha (\n). - Segurança de Credenciais: Nunca inclua o
bot_tokendiretamente no código do seu repositório. Em ambientes de produção, armazene essa informação em variáveis de ambiente com o móduloos.getenv().

Comentários
Postar um comentário