[Python] 파이썬으로 텔레그램 봇 사용하기

텔레그램은 API를 제공하며, 파이썬에서 python-telegram-bot 라는 라이브러리를 이용하면 정말 간편하게 텔레그램 봇을 통하여 메시지를 발송할 수 있습니다. 프로그램 돌리면서, 휴대폰 텔레그램 앱으로 메시지를 받을 수 있다는 것이 정말 큰 장점입니다. 사용법 또한 매우매우 간단합니다.

 

     

    저는 아래와 같은 곳에 사용중입니다. (각 항목 모두 포스팅 예정)

     

     1) 주식 프로그램에서 조건검색식 종목 신호가 오면 텔레그램으로 메시지 발송

     2) 기차표 예매 매크로를 돌려서, 예약 성공시 메시지 발송

     3) 매일 특정 홈페이지를 스크랩하는 프로그램을 돌려놓았을 경우, 스크랩 성공시 해당 내용 메시지 발송

     

     

    다음 게시물에서 나올 예시(SRT 예약 완료 후 메시지 발송)

     

     사용 방법은 아래와 같은 순서로 진행됩니다.

      1) python-telegram-bot 설치

      2) 텔레그램 봇 만들기

      3) 메시지 보내기

     

     

     

    1.  python-telegram-bot 설치

     - 커맨드 창에서 아래와 같이 입력하여 설치합니다. (github: github.com/python-telegram-bot/python-telegram-bot)

     

    pip install python-telegram-bot --upgrade

     

     

    2.  텔레그램 봇 만들기

    휴대폰에 설치되어 있는(없으면 설치) 텔레그램을 실행하여 BotFather 에게 말을 걸어봅니다. 텔레그램 메인 화면의 오른쪽 상단의 돋보기를 누르고, BotFather를 입력하면 맨 위에 BotFather가 뜹니다.

     

     

     

    하단의 시작 버튼을 누르면 아래와 같이 설명 및 여러 커맨드가 나옵니다.

     

     

    봇을 만들기 위해서는 화면의 /newbot을 클릭하거나 화면 하단 메시지 입력 창에 /newbot을 입력합니다.

    아래 화면에는 짤렸지만, /newbot을 입력하면 봇 이름을 입력하라고 뜹니다. 저는 test라고 적었습니다.

    그리고나면 bot의 텔레그램 아이디(username)을 입력해야 합니다.

     

    저는 봇 이름은 test 아이디는 we_create_chemistry_bot 으로 입력하였습니다.

     

    그러면 해당 텔래그램 봇의 토큰을 알려줍니다. 해당 토큰을 이용하여 bot으로 메시지를 보내므로, 잘 챙겨두어야 합니다. 유출되면 악용될 수 있습니다.

     

    test 봇의 토큰: 1345667370:AAEz-Yo5TlvI2UevoEPV62eWpqJIcRwd-20

     

     

     

     

     

    채팅방 ID (chat id) 알아내기

    봇으로 메시지를 보내기 위해서는 어떤 채팅방에 메시지를 보낼지 지정해주어야 합니다. 그때 필요한 것이 chat_id 입니다. chat_id를 알아내기 위해서는 먼저 위에서 찾은 봇의 토큰이 필요합니다. 

     

    아래의 주소에 <XXX:YYYY> 부분에다가 위에서 찾은 토큰을 집어 넣습니다.

    https://api.telegram.org/bot<XXX:YYYY>/getUpdates

     

     

    제 경우에는 아래와 같은 주소가 됩니다.

    https://api.telegram.org/bot1345667370:AAEz-Yo5TlvI2UevoEPV62eWpqJIcRwd-20/getUpdates

     

    완성한 주소를 크롬과 같은 인터넷 브라우저의 주소 입력창에 입력하고 접속해봅니다.

    아래와 같이 해당 봇에 대한 정보가 뜹니다.

     

    만약 안 뜬다면 휴대폰으로 아까 만든 텔레그램 채팅방에서 아무 메세지나 전송한 후 다시 접속해봅니다.

    저는 "D"라고 보냈습니다.

     

    아래에 붉은 줄로 표시한 id 부분이 채팅방 id입니다.

     

    {"ok":true,"result":[{"update_id":166515810, "message":{"message_id":5,"from":{"id":657656740,"is_bot":false,"first_name":"\ubbfc","last_name":"\uad8c","language_code":"ko"},"chat":{"id":657656740,"first_name":"\ubbfc","last_name":"\uad8c","type":"private"},"date":1603292752,"text":"D"}}]}

     

     

    봇의 토큰과 chat id 를 알아냈다면 메시지를 보내기 위한 모든 준비가 끝났습니다.

     

     test : 1345667370:AAEz-Yo5TlvI2UevoEPV62eWpqJIcRwd-20

    chat id : 657656740

     

     

     3) 메시지 보내기

    import telegram
    
    bot = telegram.Bot(token='1345667370:AAEz-Yo5TlvI2UevoEPV62eWpqJIcRwd-20')
    chat_id = 657656740
    
    bot.sendMessage(chat_id=chat_id, text="보낼 메세지")

    이렇게 실행하면 아래와 같이 메세지가 발송 됩니다.

     

     

     

    댓글

    Designed by JB FACTORY