텔레그램 봇 만들기: BotFather부터 파이썬 알림 전송까지
텔레그램 봇 만들기는 텔레그램 봇파더(@BotFather)에게 `/newbot`을 보내 토큰을 받는 데서 시작합니다.

안녕하세요. 사랑받는 IT 프로덕트의 첫걸음, 똑똑한개발자입니다.
오늘의 인사이트 요약
텔레그램 봇 만들기는 텔레그램 봇파더(@BotFather)에게
/newbot을 보내 토큰을 받는 데서 시작합니다.텔레그램 봇 chat id 확인은 봇에게 먼저 메시지를 보낸 뒤
getUpdates응답에서 합니다.서버 알림만 보내는 봇은
sendMessage호출로 충분하고, 토큰은 환경변수에 둡니다.
배포가 실패하거나 결제 API가 느려졌을 때 휴대폰이 먼저 울리게 하고 싶다면 텔레그램 봇 만들기가 손이 덜 가는 방법입니다. 봇 생성부터 chat id 확인, 그룹·채널 알림, 파이썬 발송 코드까지 순서대로 정리했습니다.
텔레그램 봇 만들기는 봇파더에게 말을 거는 것부터입니다

공식 문서에 따르면 봇은 텔레그램 봇파더(@BotFather)에서 만들고, /newbot을 보내면 질문이 이어집니다.
이름과 사용자명을 차례로 정합니다.
대화 목록에 보이는 표시명이 이름이고, 사용자명은 5~32자의 영문, 숫자, 밑줄로 쓰되 bot으로 끝나야 합니다. 나중에 바꿀 수 없으니 myservice_alert_bot처럼 용도를 드러내면 관리가 쉽습니다.
텔레그램 봇 토큰은 비밀번호처럼 다룹니다.
마지막에 받는 텔레그램 봇 토큰은 숫자 ID와 콜론, 영숫자 문자열로 이뤄집니다. 공식 문서 경고대로 토큰만 있으면 누구나 봇을 조종할 수 있으니 유출이 의심되면 /token으로 새로 받아야 합니다. 실제 토큰은 환경변수나 비밀값 저장소에 보관하고 화면 캡처·로그·저장소에 남기지 않습니다.
텔레그램 봇 chat id 확인은 getUpdates로 합니다

Bot API 요청은 https://api.telegram.org/bot<토큰>/메서드명 형식입니다. getMe로 토큰부터 확인한 뒤 메시지를 받을 대화의 chat id를 찾으면 됩니다.
봇에게 먼저 메시지를 보내야 응답에 잡힙니다.
봇 대화창에 /start를 보낸 뒤 getUpdates 응답의 message.chat.id를 확인합니다. 업데이트는 최대 24시간 보관됩니다. 위 그림의 브라우저 화면은 응답 구조 예시입니다. 실제 토큰을 주소창에 넣으면 방문 기록에 남을 수 있어, 환경변수를 읽는 코드나 API 클라이언트에서 요청하고 URL을 로그에 남기지 않는 편이 좋습니다.
그룹과 채널로 알림을 보낼 때는 조건이 달라집니다

팀원 여럿이 봐야 하는 알림은 그룹이나 채널로 보냅니다.
받는 곳 | 준비 | chat_id 지정 |
|---|---|---|
개인 대화 | 봇에게 | getUpdates의 숫자 ID |
그룹 | 봇을 그룹에 추가 후 명령어 전송 | getUpdates의 숫자 ID |
채널 | 봇을 채널 관리자로 추가 | 숫자 ID 또는 공개 채널의 |
그룹에서는 프라이버시 모드를 기억합니다.
그룹의 봇은 기본값이 프라이버시 모드라서 자신을 지목한 명령어 등 일부 메시지만 받습니다. chat id를 찾을 때 /start@봇사용자명을 보내는 것도 이 때문입니다. 발송만 한다면 그대로 두어도 됩니다.
텔레그램 알림 봇 만들기, 파이썬 코드는 짧습니다

아래는 파이썬 발송 예제입니다. python3 -m pip install requests로 라이브러리를 설치하고, 실행 환경에 TELEGRAM_BOT_TOKEN과 TELEGRAM_CHAT_ID를 설정한 뒤 사용합니다.
import os, requests
token = os.environ["TELEGRAM_BOT_TOKEN"]
url = f"https://api.telegram.org/bot{token}/sendMessage"
response = requests.post(
url,
json={"chat_id": os.environ["TELEGRAM_CHAT_ID"], "text": "결제 API 지연"},
timeout=10,
)
response.raise_for_status()
result = response.json()
if not result.get("ok"):
raise RuntimeError("텔레그램 전송 결과를 확인해 주세요.")
보내기만 하는 봇에는 폴링도 웹훅도 필요 없습니다.
명령어에 답하는 봇이라면 getUpdates 롱 폴링이나 setWebhook 웹훅으로 업데이트를 받아야 합니다. 롱 폴링과 웹훅은 동시에 사용하지 않습니다. 이미 운영 중인 웹훅이 있다면 수신 이벤트에서 chat id를 확인합니다. deleteWebhook은 수신 방식을 바꾸려는 경우에만 사용하며, 단순 조회를 위해 운영 웹훅을 해제하면 수신이 끊길 수 있습니다. Telegram Bot FAQ
알림이 몰리면 전송 한도를 봅니다.
텔레그램 FAQ 기준으로 한 대화에는 초당 1건 이하가 권장되고, 그룹에는 분당 20건을 넘겨 보낼 수 없습니다. 기능이 늘면 공식 목록의 python-telegram-bot이나 aiogram을 써 볼 만합니다.
알림 봇은 누가 받을지부터 정해야 오래 갑니다
봇 생성과 발송 코드는 금방 끝나지만 운영에서는 토큰 보관 위치와 장애별 수신자가 숙제로 남습니다.
알림 종류·받는 사람·중복 전송 기준을 정해 두면 운영이 편해집니다. 결제 오류와 배포 결과를 다른 대화로 보내거나, 같은 장애가 반복될 때 일정 시간 묶어 보내는 방식입니다. 예외 로그에 토큰이 포함된 요청 URL이 남지 않는지도 확인합니다.

필요한 소식이 담당자에게 닿도록
예약이나 결제, 배포 결과를 제때 알면 운영자가 확인하는 수고도 줄어듭니다. 똑똑한개발자는 서비스와 운영 도구를 함께 만들며 알림이 필요한 순간을 살펴봅니다.

텔레그램으로 받고 싶은 소식이 있다면 알림의 종류부터 이야기해 주세요. 기존 관리자 화면과 연결해 팀에 맞는 알림 흐름을 함께 정리해 볼 수 있습니다.
감사합니다. :)
프로젝트에 필요한 내용을 함께 살펴봅니다.
https://www.toktokhan.dev/contact?utm_source=landing&utm_campaign=telegram-bot&utm_medium=telegram-bot&utm_term=%ED%85%94%EB%A0%88%EA%B7%B8%EB%9E%A8-%EB%B4%87-%EB%A7%8C%EB%93%A4%EA%B8%B0