안녕하세요 대무무입니다.
저번 글에서 텔레그램 봇을 사용해서 봇 채팅방에서 특정 명령으로 원하는 작업을 수행할 수 있는 콜백함수들로 이뤄진 Python 코드를 소개해드렸고 실행 방법을 알려드렸습니다.
이번에는 명령을 먼저 입력하는 방식이 아닌 사용자 봇 채팅방에 먼저 메시지를 보내는 방법을 소개하겠습니다. 해당 방법은 인프라 모니터링이나 특정 이벤트가 발생했을 때 알림 받는 형식으로 사용하기 좋습니다.
만일 텔레그램 봇 채팅방을 만드는 방법을 모르신다면 이전 글 참고하시기 바랍니다.
텔레그램 chat_id 알아내기
봇 채팅방을 만들었으므로 토큰은 가지고 계실 겁니다. 추가적으로 chat_id 정보가 필요한데요. chat_id 는 자신이 속한 봇 채팅방의 정보라고 생각하시면 됩니다. 같은 봇 채팅방은 다른 사람들도 사용할 수 있는데 그 사람들 마다 고유의 chat_id 를 가지므로 메시지를 보낼 떄 chat_id 를 가지고 채팅방이 구분됩니다.
chat_id 는 다음 텔레그램 봇 채팅방에서 /find 명령으로 확인하실 수 있습니다.
chat_id Finder
You can contact @getUserChatId_bot right away.
t.me
Python 코드 작성
이번에도 python-telegram-bot 패키지를 사용할 겁니다.
$ pip3 install python-telegram-bot
이후 텔레그램 봇 채팅방으로 메시지를 보내는 코드를 작성합니다.
import os
import asyncio
import sys
import telegram
class TelegramBot:
_token = os.getenv('TELEGRAM_TOKEN')
_chat_id = os.getenv('TELEGRAM_CHAT_ID')
def __init__(self):
self._bot = telegram.Bot(token=self._token)
async def send_text(self, msg: str):
await self._bot.send_message(self._chat_id, msg)
async def main():
telegram_bot = TelegramBot()
await telegram_bot.send_text("Hello!")
if __name__ == '__main__':
bot = TelegramBot()
asyncio.run(bot.send_text(sys.argv[1]))
텔레그램 봇 채팅방 토큰과 chat_id 는 모두 환경변수로 처리했습니다. telegram.Bot 객체에 token 넘겨준 이후 해당 객체로 send_message 에 chat_id 와 보낼 메시지를 넘겨주면 봇 채팅방에 메시지가 온 것을 확인할 수 있습니다.
$ python3 -u main.py "Hello!"
'개발' 카테고리의 다른 글
VM vs Container: 고성능 앱 배포를 위한 최적 선택은? (VM 격리 vs 컨테이너 효율성) (1) | 2025.03.07 |
---|---|
생각하는 LLM 모델: DeepSeek-R1 및 QLASS가 AI의 논리적 사고를 혁신하는 방법 (1) | 2025.03.03 |
MLOps 마스터하기: 자동화된 머신러닝 모델 개발부터 배포까지 5단계 가이드 (3) | 2025.02.05 |
[Python] 텔레그램 봇 기능 사용해보기 (0) | 2024.01.14 |
[Python] Python MongoDB 라이브러리 비교 (PyMongo VS MongoEngine) (1) | 2024.01.09 |