반응형
자동화 모니터링, 에러 감지, 백업 완료 알림까지! Python으로 텔레그램 봇을 활용해 실시간 메시지를 전송해보세요.
🧱 1. 텔레그램 봇 만들기
📌 1-1. @BotFather 실행
텔레그램 앱을 열고 검색창에 @BotFather
입력 → 채팅 시작
/start
/newbot
- 봇 이름 입력 (ex: My Alert Bot)
- 봇 사용자명 입력 (반드시
bot
으로 끝나야 함. ex:my_alert_bot
)
성공 시 아래와 같은 메시지와 함께 토큰(token)을 제공합니다.
Use this token to access the HTTP API:
123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
✅ 이 토큰은 절대 외부에 유출되지 않도록 주의하세요!
🔍 2. Chat ID 확인하기
텔레그램 메시지를 보내려면 대상의 chat_id가 필요합니다.
✅ 방법 1: @userinfobot 사용
@userinfobot
채널 검색/start
입력- 다음과 같은 메시지가 나옵니다:
Your Chat ID: 987654321
이 값을 기억하세요. 개인 알림용 chat_id입니다.
🧪 3. Python 코드로 메시지 전송
📦 패키지 설치
pip install requests python-dotenv
🧾 .env
파일 구성 (보안 권장)
TELEGRAM_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
TELEGRAM_CHAT_ID=987654321
🧠 Python 스크립트
import os
import requests
from dotenv import load_dotenv
# 보안 처리: .env 파일에서 변수 불러오기
load_dotenv()
TOKEN = os.getenv("TELEGRAM_TOKEN")
CHAT_ID = os.getenv("TELEGRAM_CHAT_ID")
def send_telegram_message(message: str):
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
params = {
'chat_id': CHAT_ID,
'text': message
}
response = requests.get(url, params=params)
if response.status_code == 200:
print("✅ 메시지 전송 성공!")
else:
print(f"❌ 실패: {response.text}")
# 예시 호출
send_telegram_message("📢 백업 완료! 서버 상태 양호합니다.")
🛠 4. 실전 예제 모음
🎯 에러 발생 시 알림
try:
result = do_critical_job()
except Exception as e:
send_telegram_message(f"🚨 오류 발생: {e}")
📆 매일 아침 데이터 처리 완료 알림
send_telegram_message("✅ 일일 리포트 생성 완료 (07:30 AM)")
👥 5. 단체 채팅방에 메시지 보내기 (그룹 알림)
- 그룹방을 만든 후 봇을 초대합니다.
- 봇이 메시지를 보내기 위해 한 번은 사람이 그룹에 메시지를 보내야 합니다.
- 아래 주소로 group chat ID를 확인:
https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates
메시지를 한 번 보낸 후 이 주소를 접속하면, 응답 JSON에
"chat":{"id":-xxxxxxxx}
항목이 나옵니다.
- ✅
chat.id
값이 마이너스(-) 로 시작하면 그룹 채팅방입니다.
🎨 6. 고급 기능 (옵션 활용)
✅ 메시지에 마크다운 적용
params = {
'chat_id': CHAT_ID,
'text': "*데이터 처리 완료!* _자세한 내용은 링크를 참고하세요_",
'parse_mode': 'Markdown'
}
✅ 버튼이 있는 메시지 보내기
params = {
'chat_id': CHAT_ID,
'text': '📈 리포트를 확인하세요:',
'reply_markup': {
'inline_keyboard': [[
{'text': '📊 리포트 보기', 'url': 'https://your-report-link.com'}
]]
}
}
requests.post(url, json=params)
방식으로 전송해야 합니다.
🔐 보안 팁 요약
TOKEN
,CHAT_ID
는 코드에 하드코딩하지 말고.env
또는 환경변수 사용- GitHub 업로드 시
.env
는 반드시.gitignore
처리 - 봇은 쓰기 권한만 갖고 있어야 하며, 민감한 데이터는 보내지 않는 것이 원칙
🧩 확장 아이디어
apscheduler
,schedule
과 함께 정기 알림- 텔레그램으로 데이터 시각화 이미지(PNG) 전송
- 텔레그램을 통한 간단한 모니터링 대시보드 구현
✅ 마무리
텔레그램은 Python과의 궁합이 매우 좋아 실시간 알림, 서버 상태 보고, 에러 모니터링 등에 최고의 선택입니다.
코드도 간단하고 무료로 사용 가능하니, 작은 스크립트부터 실전 업무까지 바로 적용해보세요!
반응형
'Programming' 카테고리의 다른 글
🧠 진짜 쉽게 배우는 Python 함수형 프로그래밍: lambda, map, filter, reduce (0) | 2025.03.31 |
---|---|
📡 Python으로 MSSQL 저장 프로시저 실행하기 (파라미터 전달까지 완벽 정리!) (0) | 2025.03.28 |
🔎 Python에서 조건별로 MSSQL 쿼리 동적 생성하기 (f-string과 SQL Injection 방지법) (0) | 2025.03.26 |
📦Python 가상환경(venv) 사용법 + `requirements.txt` 완전정복 (0) | 2025.03.25 |
🔁 MSSQL에서 반복문 처리하기: WHILE vs CURSOR 기초 정리 (0) | 2025.03.24 |