텔레그램 봇 연동

Q·2023년 10월 16일

✅ 개요

  • 텔레그램을 이용한 알람을 만드는 프로젝트를 하기 전 사전작업

✅ 소프트웨어 설치 (Installing Software)

✅ Server 구성 (ELK 설치 의 서버 구성을 참고)

⚡ CentOS7 환경

  • 10.0.7.1

✅ bot 연동

  1. 먼저 웹버전, PC버전, 모바일 버전 중 아무 방법을 통해 텔레그램에 로그인
  1. 검색창에 BotFather을 검색
  1. 명령어 /newbot 을 전송해줍니다. Bot 생성 과정이 시작이 됩니다. 제일 먼저, 원하시는 Bot의 이름을 정해주세요. (중복 허용) 그 다음 Bot의 username을 지정해주세요. 꼭 bot으로 끝나야합니다. (중복X) Bot 생성이 끝나면 위에 가려놓은 부분에 token key가 주어집니다.
  1. 자신의 Bot의 username을 검색하여 알맞은 Bot을 찾아줍니다. 먼저 아무 메세지나 전송해주어야 합니다. 메세지를 전송하는 이유는 Bot과 소통 할 본래 본인 텔레그램 계정의 ChatID를 받아와야하기 때문입니다.
  1. 이제 본인 텔레그램 계정과 소통할 수 있는 ChatID를 받아오겠습니다.
  • pip install python-telegram-bot
    • python-telegram-bot 을 pip install 해줍니다.
  • https:*//api.telegram.org/bot+(발급받은 토큰 키)/getUpdates*
    - Bot에다 메세지를 보낸 후 위에 링크로 가시면 아래와 같은 코드가 나올 겁니다. 그 중에서 id에 해당하는 50######84 같은 형식의 값을 복사 해 놓으시면 됩니다.
        
  1. 이제 본인 텔레그램 계정으로 메세지를 전송해보겠습니다.
import asyncio
import sys
import telegram

TOKEN = "51############################################DFs"
CHAT_ID = "50######84"

async def send_alert(message):
    bot = telegram.Bot(token=TOKEN)
    await bot.sendMessage(chat_id=CHAT_ID, text=message)

def main():
    message = " ".join(sys.argv[1:]) or 'Bot에서 보낸 메세지입니다.'
    asyncio.run(send_alert(message))

if __name__ == '__main__':
    main()

✅ 참고 자료

profile
Data Engineer

0개의 댓글