🌗 ← Índice
Data: 14/08/2026
Nível: Projeto (Mês 3 — Projetos Reais)
import requests
token = "SEU_TOKEN"
resposta = requests.get(
f"https://api.telegram.org/bot{token}/getUpdates",
timeout=10,
)
print(resposta.json())
# envie uma mensagem para o seu bot antes, e o chat_id aparecerá aqui
💡 `chat_id` fica em `result[0]["message"]["chat"]["id"]` — é um número (ex: `123456789`).
import requests
TOKEN = "SEU_TOKEN"
CHAT_ID = 123456789
resposta = requests.post(
f"https://api.telegram.org/bot{TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": "🔔 Olá! Isso é um alerta."},
timeout=10,
)
print(resposta.status_code) # 200 = enviado
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv("TELEGRAM_TOKEN")
CHAT_ID = int(os.getenv("TELEGRAM_CHAT_ID"))
TELEGRAM_TOKEN=123456:ABC-DEF...
TELEGRAM_CHAT_ID=123456789
resposta = requests.post(
f"https://api.telegram.org/bot{TOKEN}/sendMessage",
json={
"chat_id": CHAT_ID,
"text": "*Atenção!*\n_Disco 90% cheio_\n`df -h`",
"parse_mode": "Markdown",
},
timeout=10,
)
Bot que monitora o disco da VPS e envia alerta quando passa de um limite:
import os
import shutil
import requests
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv("TELEGRAM_TOKEN")
CHAT_ID = int(os.getenv("TELEGRAM_CHAT_ID"))
LIMITE_PERCENTUAL = float(os.getenv("LIMITE_DISCO", "80"))
def uso_disco(caminho="/") -> float:
uso = shutil.disk_usage(caminho)
return uso.used / uso.total * 100
def enviar_telegram(texto: str) -> bool:
resposta = requests.post(
f"https://api.telegram.org/bot{TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": texto, "parse_mode": "Markdown"},
timeout=10,
)
return resposta.status_code == 200
def main():
percentual = uso_disco()
mensagem = f"💾 *Disco da VPS:* {percentual:.1f}% usado"
if percentual >= LIMITE_PERCENTUAL:
mensagem += "\n\n⚠️ *ATENÇÃO:* limite de {:.0f}% excedido!".format(LIMITE_PERCENTUAL)
if enviar_telegram(mensagem):
print("Mensagem enviada com sucesso")
else:
print("Falha ao enviar mensagem")
if __name__ == "__main__":
main()
python alerta_disco.py
# 💾 Disco da VPS: 62.3% usado
0 9 * * * cd /home/ubuntu/projetos/alerta && /usr/bin/python3 alerta_disco.py
🔗 **Conexão com sua infra:** você já tem crons no Hermes — esse é o mesmo padrão para alertas no Telegram.
Crie um bot alerta_precos.py que verifica um preço numa API pública (ex: preço do Bitcoin na CoinGecko) e envia alerta quando subir ou descer mais de X% em relação ao último valor salvo:
python alerta_precos.py --limite 5
# 📈 BTC subiu 5.3% — novo preço: R$ 450.000
Requisitos:
import json
import os
import requests
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv("TELEGRAM_TOKEN")
CHAT_ID = int(os.getenv("TELEGRAM_CHAT_ID"))
def preco_btc() -> float:
resposta = requests.get(
"https://api.coingecko.com/api/v3/simple/price",
params={"ids": "bitcoin", "vs_currencies": "brl"},
timeout=10,
)
return resposta.json()["bitcoin"]["brl"]
def carregar_anterior() -> float | None:
try:
with open("ultimo_preco.json") as f:
return json.load(f)["preco"]
except (FileNotFoundError, KeyError):
return None
def salvar_atual(preco: float) -> None:
with open("ultimo_preco.json", "w") as f:
json.dump({"preco": preco}, f)
def main(limite: float):
atual = preco_btc()
anterior = carregar_anterior()
if anterior is not None and anterior > 0:
variacao = (atual - anterior) / anterior * 100
if abs(variacao) >= limite:
sinal = "📈 subiu" if variacao > 0 else "📉 caiu"
requests.post(
f"https://api.telegram.org/bot{TOKEN}/sendMessage",
json={"chat_id": CHAT_ID, "text": f"BTC {sinal} {abs(variacao):.1f}% — R$ {atual:,.0f}"},
timeout=10,
)
salvar_atual(atual)
print(f"BTC: R$ {atual:,.0f} (anterior: {anterior})")
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--limite", type=float, default=5.0)
args = parser.parse_args()
main(args.limite)
💡 Resultado: rodado via cron a cada hora, o bot avisa só quando há movimento relevante — sem spam.
HB Estudos · ← Voltar ao índice de Python