본문 바로가기
5. 개인 프로젝트 (Personal Projects)/파인 다이닝 가이드 (Fine Dining Guide)

1. Telegram Bot 만들기: Python 스크립트를 이용한 메시지 전송

by Mojito 2025. 1. 9.

이 글에서는 Telegram Bot을 생성하고, Python 스크립트를 이용해 메시지를 전송하는 방법을 안내합니다.

Telegram Bot API를 활용하여 간단한 봇을 설정하고 사용할 수 있습니다.


1. Telegram Bot Token 및 Chat ID 생성 방법

1.1 Telegram Bot Token 생성

  1. Telegram 앱에서 @BotFather를 검색하고 채팅을 시작합니다.
  2. 아래 명령어를 입력하여 새 봇을 생성합니다:
  3. /newbot
  4. 봇의 이름과 사용자 이름(username)을 입력합니다. 사용자 이름은 반드시 **_bot**으로 끝나야 합니다. (예: culinary_war_bot)
  5. BotFather가 생성된 봇의 토큰(Token)을 저장해두시면 됩니다. 
    예시)
    123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

 

1.2 Chat ID 확인 방법

  1. 생성한 봇을 Telegram에서 검색하고 Start 버튼을 눌러 활성화합니다.
  2. 브라우저에서 아래 URL을 호출하여 자신의 Chat ID를 확인합니다:
    • {} 는 제외
  3. https://api.telegram.org/bot{위에서 저장해둔 토큰 값}/getUpdates
  4. ok true 가 화면상에 나타났다면, 생성된 채팅방에서 아무 글이나 적으신 후 다시 접속해보시면 아래와 같이 채팅 아이디를 받으실수 있습니다.
  5.  
{"ok":true,"result":[{"update_id":0000,
"message":{"message_id":000,"from":{"id":0000,"is_bot":false,"first_name":"000","last_name":"000","language_code":"en"},"chat":{"id":**채팅아이디**,"first_name":"Eric","last_name":"Lim","type":"private"},"date":1736693900,"text":"hello"}}]}

2. Python 스크립트로 메시지 전송하기

아래 Python 스크립트는 Telegram Bot을 사용해 메시지를 전송하는 간단한 예제입니다.

2.1 코드 설명

  • asyncio: 비동기 작업을 처리하는 라이브러리.
  • telegram: Telegram Bot API와 상호작용을 위한 라이브러리.
  • token: BotFather로부터 받은 Bot Token.
  • chat_id: 전송할 대상의 Chat ID.

2.2 코드

import asyncio
import telegram

# Telegram Bot Token과 Chat ID 설정
token = "<your-bot-token>"
chat_id = "<your-chat-id>"

# 메시지 전송 함수 정의
async def main(message):
    bot = telegram.Bot(token)
    async with bot:
        await bot.send_message(text=message, chat_id=chat_id)
        print(await bot.get_me())

# 스크립트 실행
if __name__ == '__main__':
    asyncio.run(main('Hello World'))

2.3 코드 실행

  1. 위 코드를 복사하여 .py 파일로 저장합니다. (예: telegram_bot.py)
  2. 명령어를 실행하여 메시지를 전송합니다:
  3. python telegram_bot.py
  4. 봇이 지정된 Chat ID로 메시지를 전송한 것을 확인합니다.

이제 Telegram Bot을 생성하고 Python으로 메시지를 전송할 수 있습니다. 다음 단계에서는 Selenium을 사용하여 예약 시스템을 자동화하는 방법을 배워보겠습니다.

반응형

댓글