8편. 실전 자동화 4: 파이썬 오픈 API와 메신저 연동하여 나만의 텔레그램 알림 봇 만들기
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
지난 7편까지 우리는 웹 크롤링을 통해 매일 아침 내가 원하는 뉴스를 자동으로 수집하고, 이를 깔끔하게 엑셀 표로 저장하는 데 성공했습니다.
하지만 여기에는 한 가지 치명적인 단점이 있습니다. 결국 그 엑셀 파일을 확인하려면 내가 직접 컴퓨터 앞에 앉아 폴더를 열고 파일을 더블 클릭해야 한다는 점입니다.
저 역시 초창기에 주식 시황과 키워드 뉴스를 파이썬으로 엑셀에 모아두기만 하다가, 정작 바쁜 출근길에 엑셀을 열어보지 못해 중요한 타이밍을 놓친 경험이 많습니다.
진정한 업무 자동화는 '내가 찾아가는 것'이 아니라 '데이터가 나에게 알아서 찾아오게 만드는 것'입니다.
오늘은 우리가 늘 손에 쥐고 있는 스마트폰 메신저로 파이썬이 스스로 말을 걸게 만드는 마법, 오픈 API를 활용한 텔레그램 알림 봇 연동 방법에 대해 단계별로 알아보겠습니다.
오픈 API와 텔레그램 메신저의 완벽한 조화
갑자기 '오픈 API(Open API)'라는 용어가 나와서 당황하셨을 수도 있습니다. API는 쉽게 말해 식당의 '점원'과 같습니다.
주방(텔레그램 서버)에 직접 들어가 요리를 할 필요 없이, 점원(API)에게 "내 친구에게 이 메시지 좀 배달해 줘!"라고 주문서(코드)만 넘기면 알아서 처리해 주는 시스템입니다.
수많은 메신저 중에서도 굳이 텔레그램(Telegram)을 사용하는 이유는 명확합니다.
카카오톡이나 라인은 비전공자가 봇을 만들고 권한을 승인받는 과정이 매우 복잡하고 까다롭습니다. 반면 텔레그램은 개발자 친화적이어서 단 1분이면 무료로 나만의 알림 봇을 만들고 파이썬과 즉시 연동할 수 있습니다.
1단계: 텔레그램에서 나만의 봇(Bot) 생성하기
파이썬 코드를 작성하기 전에, 먼저 텔레그램 앱에서 메시지를 전달해 줄 로봇 직원을 채용해야 합니다. 스마트폰이나 PC에서 텔레그램을 열고 다음 순서대로 진행합니다.
텔레그램 검색창에
BotFather를 검색하여 체크 표시가 있는 공식 계정에 입장합니다.채팅창에
/newbot이라고 타이핑하여 새로운 봇을 만들겠다고 선언합니다.봇의 이름(예: 라온스페이스 알림봇)을 입력합니다.
봇의 아이디를 설정합니다. (반드시 끝이
_bot으로 끝나야 합니다. 예: laonspace_news_bot)생성이 완료되면 봇파더가 아주 긴 영문과 숫자가 섞인
API Token(토큰)을 발급해 줍니다. 이 토큰이 바로 내 봇을 조종할 수 있는 '마스터키'입니다. 절대 외부에 노출되지 않도록 메모장에 잠시 복사해 둡니다.
2단계: 메시지를 받을 내 채팅방 고유 번호(Chat ID) 찾기
봇이 만들어졌지만, 이 봇은 아직 '누구에게' 메시지를 보내야 할지 모릅니다.
텔레그램을 사용하는 수많은 사람 중 정확히 '나'에게만 메시지를 보내게 하려면 내 채팅방의 고유 번호(Chat ID)를 알아내야 합니다.
텔레그램 검색창에 방금 내가 만든 봇의 아이디(예: laonspace_news_bot)를 검색하여 대화방에 입장합니다.
하단의 '시작(Start)' 버튼을 누르거나
/start를 입력해 봇을 깨워줍니다.인터넷 브라우저 주소창에 다음 주소를 입력합니다. (대괄호 부분은 방금 받은 내 토큰으로 바꿉니다.)
[https://api.telegram.org/bot](https://api.telegram.org/bot)[나의API토큰]/getUpdates화면에 알 수 없는 텍스트들이 뜹니다. 여기서
"chat":{"id":123456789...}부분의 숫자가 바로 나만의 고유 Chat ID입니다. 이 숫자도 메모장에 함께 적어둡니다.
3단계: 파이썬(Replit)에서 텔레그램으로 메시지 쏘기
이제 준비는 모두 끝났습니다. 우리가 애용하는 리플릿(Replit) 브라우저 화면을 열고, 단 5줄의 코드로 내 스마트폰에 메시지를 보내보겠습니다.
웹에 접속할 때 쓰는 requests 도구를 또 한 번 활용합니다.
import requests
앞서 메모장에 적어둔 마스터키와 내 방 번호를 변수 상자에 담습니다.
bot_token = "여기에_API토큰을_넣으세요" chat_id = "여기에_채팅방ID_숫자를_넣으세요" send_text = "안녕하세요! 파이썬 알림 봇 테스트 성공입니다!"
텔레그램 점원(API)에게 전달할 정확한 주문서 주소를 조립합니다.
api_url = f"
requests 도구를 통해 주소로 접속(요청)합니다.
requests.get(api_url)
상단의 'Run' 버튼을 누르면, 리플릿의 검은 화면에는 아무것도 뜨지 않지만 1초 뒤 여러분의 스마트폰 텔레그램 앱으로 봇이 보낸 메시지가 띠링 하고 도착할 것입니다.
실전 응용: 크롤링 코드와 결합하기
이 원리를 이전 6편에서 배운 뉴스 크롤링 코드와 결합하면 어떻게 될까요?
send_text 변수 안에 내가 수집한 최신 뉴스 기사 제목과 링크를 차곡차곡 담아서 전송 버튼을 누르기만 하면 됩니다.
이제 매일 아침 내가 컴퓨터를 켜지 않아도, 파이썬이 알아서 뉴스를 긁어와 내 스마트폰으로 '아침 브리핑'을 보내주는 진정한 자동화 비서가 탄생한 것입니다.
봇 연동 시 반드시 확인해야 할 주의사항 및 한계
매우 편리한 기능이지만, 보안과 서버 매너 측면에서 다음 사항을 반드시 지켜야 합니다.
토큰 유출 엄금: API 토큰은 봇의 통제권을 의미합니다. 리플릿(Replit) 무료 버전은 기본적으로 코드가 공개(Public) 상태이므로, 토큰을 코드 창에 그대로 적어두면 전 세계 누구나 내 봇을 조종해 스팸 메시지를 보낼 수 있습니다. (리플릿의 'Secrets(환경변수)' 기능을 사용해 마스터키를 숨기는 것이 안전합니다.)
무한 반복 전송 주의:
for반복문이나while문을 잘못 짜서 1초에 수백 건의 메시지를 내 텔레그램으로 보내게 되면, 텔레그램 서버가 나를 악성 사용자로 간주해 계정을 정지시킬 수 있습니다. 테스트할 때는 반드시 천천히, 적은 횟수만 실행하세요.
요약 및 마무리
진정한 업무 자동화는 내가 데이터를 찾는 것이 아니라, 데이터가 내 메신저로 찾아오게 만드는 것입니다.
텔레그램의
BotFather를 통해 무료 알림 봇을 생성하고, 봇을 조종할 마스터키(API Token)와 내 채팅방 번호(Chat ID)를 발급받습니다.파이썬의
requests라이브러리를 사용해 텔레그램 API 주소에 신호를 보내면, 내가 원하는 텍스트를 스마트폰으로 즉시 전송할 수 있습니다.API 토큰은 절대 외부에 노출되지 않도록 안전하게 숨겨서 관리해야 합니다.
다음 9편에서는 메신저 연동에서 한 걸음 더 나아가, 주식 시황 데이터나 공공기관의 객관적인 통계 자료를 안전하고 합법적으로 가져올 수 있는 '오픈 API를 활용한 객관적 데이터 다루기'에 대해 단계별로 자세히 알아보겠습니다.
오늘 직접 만든 텔레그램 봇으로 처음 메시지를 받았을 때 기분이 어떠셨나요?
스마트폰에 잘 도착했는지, 혹시 에러가 발생했다면 어떤 증상인지 편하게 댓글로 남겨주시면 확인해 드리겠습니다!
#파이썬자동화 #텔레그램봇만들기 #오픈API #메신저연동 #파이썬알림봇 #직장인코딩독학 #애드센스승인포스팅
댓글
댓글 쓰기