카카오톡 나에게 보내기 API로 자동화 알림 채널 만들기 — 토큰 만료 대비까지 2026
자동화는 다 만들었는데 알림만 카카오톡으로 받고 싶을 때 쓰는 나에게 보내기 API를 정리했어요. 앱 만들기와 talk_message 동의항목, 액세스 토큰과 리프레시 토큰의 만료 구조, n8n HTTP 요청 설정, 두 달째에 조용히 멈추는 자리를 막는 자동 갱신 설계까지 카카오 공식 문서 기준으로 담았습니다.
AI 기술을 누구나 쉽게 활용할 수 있도록 실전 가이드를 작성합니다. ChatGPT, Claude, AI 자동화, SEO 분야를 전문으로 다룹니다.
본인만의 ChatGPT 챗봇 갖고 싶으셨죠?
저도 그랬어요. 본업 일하면서 자주 쓰는 질문 패턴(코드 디버깅·번역·요약)이 있는데 매번 ChatGPT 웹사이트 열기 귀찮고, 모바일에서도 바로 쓰고 싶었거든요. 그래서 Telegram + ChatGPT API 봇을 한 시간 정도 들여 만들어두고 나서는, 모바일에서 바로 질문을 던지는 용도로 잘 쓰고 있어요.
오늘은 Telegram 봇 + ChatGPT API 자동화 5단계예요. 결론부터 말씀드리면 Python 50줄 + 무료 Cloudflare Workers + 종량제 API 비용으로 본인만의 24시간 AI 비서 완성이에요.

먼저 텔레그램 앱에서 봇 등록해요. PC·모바일 둘 다 가능해요.
BotFather로 봇 생성:
발급받은 토큰을 메모장에 임시 저장하세요. 코드에서 환경변수로 사용할 거예요.
선택 설정 (BotFather 명령어):
이 단계는 5분이면 끝나요. 토큰 분실 시 BotFather에서 /token 명령어로 재발급 가능해요.
ChatGPT API 사용하려면 OpenAI 계정과 결제수단 등록이 필요해요.
API 키 발급 단계:
충전 금액 정하는 기준:
개인 봇이면 $5로 시작해도 충분해요. 자동 충전(auto-recharge)은 비활성화하세요. 코드 버그로 무한 호출 시 청구액 폭탄 위험이 있거든요.
핵심 코드는 50줄 이내예요. 파이썬 3.10+ 필요해요.
필수 라이브러리 설치:
pip install python-telegram-bot openai python-dotenv
기본 봇 코드 (bot.py):
import os
from openai import OpenAI
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters, ContextTypes
from dotenv import load_dotenv
load_dotenv()
TELEGRAM_TOKEN = os.getenv("TELEGRAM_TOKEN")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
# 사용할 모델 ID는 OpenAI 공식 모델 목록에서 확인 후 .env에 지정
OPENAI_MODEL = os.getenv("OPENAI_MODEL")
client = OpenAI(api_key=OPENAI_API_KEY)
# 사용자별 대화 기록 저장
conversations = dict()
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
conversations[user_id] = []
await update.message.reply_text("안녕하세요. 무엇이든 물어보세요.")
async def reset(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
conversations[user_id] = []
await update.message.reply_text("대화 기록이 초기화됐어요.")
async def chat(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_id = update.effective_user.id
user_message = update.message.text
history = conversations.get(user_id, [])
history.append([{"role": "user", "content": user_message}][0])
response = client.chat.completions.create(
model=OPENAI_MODEL,
messages=[{"role": "system", "content": "친절한 한국어 AI 비서로 답변하세요."}] + history,
max_tokens=500
)
reply = response.choices[0].message.content
history.append([{"role": "assistant", "content": reply}][0])
conversations[user_id] = history[-10:]
await update.message.reply_text(reply)
app = ApplicationBuilder().token(TELEGRAM_TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("reset", reset))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, chat))
app.run_polling()
환경변수 파일 (.env):
TELEGRAM_TOKEN=발급받은_텔레그램_토큰
OPENAI_API_KEY=sk-발급받은_OpenAI_키
OPENAI_MODEL=공식_문서에서_확인한_모델_ID
.gitignore에 .env 추가 (절대 잊지 말기):
.env
__pycache__/
코드 핵심 포인트:
n8n + Claude API 자동화 5단계와 비슷한 구조지만 Telegram + Python 직접 구현이라 학습 가치가 높아요.
코드 작성 완료하면 본인 PC에서 테스트해요.
실행 방법:
python bot.py
콘솔에 'Application started' 메시지 뜨면 봇 실행 중이에요. 텔레그램에서 본인 봇 검색 → /start → 메시지 입력해보면 지정한 모델이 응답해요.
자주 발생하는 에러:
Error: Invalid token
→ TELEGRAM_TOKEN 오타 또는 .env 파일 위치 확인
openai.AuthenticationError
→ OPENAI_API_KEY 잘못됐거나 결제수단 미등록
RuntimeError: This event loop is already running
→ Jupyter Notebook에서 실행하지 말고 일반 터미널 사용
고급 기능 추가:
자동화 도구 비교는 Make vs Zapier 2026 가격 비교도 참고해보세요.

본인 PC 24시간 켜둘 수 없으니까 무료 호스팅으로 옮겨요.
Cloudflare Workers 사용 이유:
배포 단계:
Cloudflare Workers JavaScript 예시:
export default {
async fetch(request, env) {
const update = await request.json();
const message = update.message?.text || "";
const chatId = update.message?.chat?.id;
const aiResponse = await fetch("https://api.openai.com/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer " + env.OPENAI_API_KEY
},
body: JSON.stringify({
model: env.OPENAI_MODEL,
messages: [{role: "user", content: message}]
})
});
const data = await aiResponse.json();
const reply = data.choices[0].message.content;
await fetch("https://api.telegram.org/bot" + env.TELEGRAM_TOKEN + "/sendMessage", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({chat_id: chatId, text: reply})
});
return new Response("OK");
}
};
배포 후 텔레그램 webhook 설정 (한 번만):
curl "https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://my-telegram-bot.your-subdomain.workers.dev"
이렇게 하면 본인 PC 꺼도 24시간 봇이 작동해요. 개인이 혼자 쓰는 봇이라면 무료 한도만으로도 대부분 커버되는데, 요청 한도와 과금 기준은 Cloudflare Workers 공식 요금 페이지에서 확인하세요. AI 자동화 도구 종합 비교는 Zapier vs Make vs n8n 3way 비교도 참고하세요.
시나리오 1: 개인 일정 관리 봇
시나리오 2: 외국어 번역 봇
시나리오 3: 코드 디버깅 봇
시나리오 4: 뉴스 요약 봇
시나리오 5: 고객 응대 자동화 (1인 사업자)
시나리오 6: 그룹 챗 모더레이터
시나리오 7: 학습 도우미 (자녀용)
반대로 파일 업로드나 긴 문서 분석이 주 용도라면 웹 ChatGPT 쪽이 편해요. 봇은 짧은 대화에 최적화된 도구로 생각하는 게 맞아요.
비용은 대화 길이에 비례해요. 코드에서 history를 최근 몇 개로 자르는 이유가 이거예요. 대화 기록을 무제한으로 쌓으면 매 요청마다 이전 대화 전체가 다시 전송돼서 토큰이 빠르게 늘어나요.
봇 링크는 사실상 공개예요. 텔레그램 봇은 사용자명만 알면 누구나 대화를 시작할 수 있어요. 본인만 쓸 거라면 코드에 허용할 사용자 ID를 확인하는 조건을 넣으세요. 이 한 줄이 없으면 남이 본인 API 크레딧을 대신 쓰는 상황이 생겨요.
자동 충전은 켜지 마세요. 무한 루프 버그 하나로 청구액이 크게 튈 수 있어요. 사용량 알림을 걸어두는 편이 안전해요.
대화 기록은 메모리에만 남아요. 예제 코드의 conversations 딕셔너리는 프로세스가 재시작되면 사라져요. 기록을 유지하려면 SQLite나 KV 저장소로 옮겨야 해요.
막혔을 때는 에러 메시지를 그대로 검색해보세요. python-telegram-bot과 OpenAI 라이브러리 모두 사용자가 많아서 같은 문제를 먼저 겪은 사람의 기록이 쌓여 있어요. 그래도 안 풀리면 코드를 최소 동작만 남기고 줄인 다음 기능을 하나씩 다시 붙이는 방식이 가장 빨라요. 어느 줄에서 깨지는지 바로 드러나거든요.
코딩 처음이면 1단계 BotFather + 2단계 OpenAI API 키 발급까지만 오늘 완료해보세요. 코드 작성은 ChatGPT한테 "이 글의 코드 단계별로 설명해줘" 물어보면 본인 페이스로 학습 가능해요. 1주일 안에 본인만의 AI 비서가 완성됩니다. 처음부터 기능을 다 넣으려 하지 말고, 질문에 답만 하는 최소 버전을 먼저 띄운 다음 필요한 기능을 하나씩 얹는 순서를 추천해요.
Python 기본 문법(변수·함수)만 알면 충분해요. 이 글의 코드를 그대로 복사해서 본인 토큰만 바꿔 넣으면 1시간 안에 작동해요. 코딩 처음이라면 Replit 같은 무료 IDE에서 시작해보세요. 브라우저에서 바로 실행되고 호스팅까지 돼요. 완전 노코드 원하면 Make·Zapier 사용도 가능한데 무료 한도 빠르게 차요.
OpenAI API 종량제 외 무료예요. 경량 모델을 쓰면 개인용 챗봇은 부담이 크지 않은 수준이고, 상위 모델은 그보다 몇 배 더 나와요. 토큰 단가는 모델별로 다르고 개편도 잦으니까 OpenAI 공식 요금 페이지에서 확인하는 게 정확해요. 텔레그램은 완전 무료이고, 호스팅도 Cloudflare Workers 무료 플랜으로 개인 봇 수준은 충분히 커버돼요.
일반 대화형 챗봇은 경량 모델로 충분해요. 응답이 더 빠르고 비용도 눈에 띄게 낮거든요. 다만 코드 생성·복잡한 추론·법률 자문처럼 깊이 있는 답변이 필요하면 상위 모델이에요. 본인 봇 사용 빈도 보고 1~2주 후 적정 모델 선택하면 돼요. 현재 제공되는 모델 목록은 OpenAI 공식 문서에서 확인하세요.
텔레그램 앱에서 BotFather(@BotFather) 검색 → /newbot 명령어 입력 → 봇 이름·사용자명 설정하면 즉시 토큰 발급돼요. 토큰 형식은 '123456789:ABCdefGHIjklMNOpqrSTUvwxyz' 형태이고, 이걸 환경변수에 저장해서 코드에서 불러와요. 토큰은 외부 노출되면 봇 탈취 가능하니까 GitHub 공개 레포에 올리면 안 돼요.
본인 PC 켜둬도 되지만 Cloudflare Workers 같은 무료 플랜 호스팅 추천이에요. Cloudflare Workers는 개인 봇 트래픽 정도면 무료 한도로 충분하고, 콜드 스타트 부담이 거의 없고 글로벌 CDN까지 자동이에요. Render 같은 컨테이너형 호스팅은 구조가 더 익숙한 대신 무료 플랜에 sleep mode가 있어서 한동안 쓰지 않으면 첫 응답이 느려져요. 무료 플랜 정책은 서비스마다 자주 바뀌니 가입 전에 공식 요금 페이지를 확인하세요.
용도가 무궁무진해요. 1) 개인 비서 (일정·메모·번역) 2) 그룹 챗 모더레이터 (욕설 필터·자동 답변) 3) 외국어 학습 챗봇 4) 법률·세무 상담 봇 5) 코인 시그널 봇 6) 뉴스 요약 봇 7) 고객 응대 봇. 1인 사업자라면 고객 응대 자동화로 시작해서 월 10시간 절약 가능해요.
절대 코드에 직접 적지 마세요. .env 파일에 저장하고 .gitignore에 추가, 호스팅 플랫폼은 환경변수 기능 사용해요. Cloudflare Workers는 wrangler secret put 명령어로 암호화 저장. GitHub에 노출되면 OpenAI가 자동 감지해서 키 무효화시키는데 그때까지 누군가 사용하면 청구액 폭탄 맞아요.