Dreams Come True Studio

파이썬(Python) - 텔레그램 (Telegram) 봇 만들기 본문

IT-Youtube-Publish

파이썬(Python) - 텔레그램 (Telegram) 봇 만들기

Dream Come True 2022. 4. 1. 23:04
반응형

이번 시간에는 파이썬으로 텔레그렘 봇을 한번 만들어 보겠습니다.

몇일전에 이웃분 블로그를 보고 해봤는데 생각보다 난이도가 그렇게 어렵지 않더라고요

간단해서 이것은 금방 따라하실 수 있을것 같습니다.

텔레그램이라는 모바일 앱이 있는데, 우선 앱은 다운 받아주시고요.

윈도우에서도 사용하려면

https://desktop.telegram.org/

윈도우 버전을 다운 받아 줍니다.

모바일 앱에서 데스크탑 텔레그램과 연결을 해줍니다.

그럼 시작합니다.

먼저 botfather 채널을 검색합니다. 봇퐈더~~

/newbot 을 입력해줍니다. 새로운 텔레그램 봇을 생성합니다.

그리고 봇 이름을 말해줍니다.

그러면 봇파더가 무슨 말을 하던데 API 토큰값이 나오는데 잘 기록해둡니다.

이 토큰값은 잘 보관해두세요.

이제 파이썬 telepot 패키지를 설치합니다.

pip install telepot

그리고 ID를 알아낼 필요가 있는데,

import os import sys from PyQt5.QtWidgets import QApplication from dotenv import load_dotenv import telepot load_dotenv(verbose=True) if __name__ == "__main__": app = QApplication(sys.argv) bot = telepot.Bot([토큰값]) def handle(msg): print(msg) bot.message_loop(handle) while True: pass

봇한테 아무말이나 해봅니다.

여기서 콘솔에 찍히는것을 보고 id 를 알아낼수 있습니다.

텔레그램 봇으로 메시지 보내기

import os import telegram from dotenv import load_dotenv load_dotenv(verbose=True) if __name__ == "__main__": bot = telepot.Bot(os.getenv('TELEGRAM_TOKEN')) # 토큰 값 mc = os.getenv('TELEGRAM_ID') # ID bot.sendMessage(mc, "안녕하세요")

토큰값을 넣어서 bot 이라는 객체를 만들고

sendMessage 에 id랑 메시지를 넣어서 전송합니다.

그러면 봇이 안녕하세요 라는 말을 해주는것을 확인해볼 수 있습니다.

텔레그램 봇과 대화하기

import os import sys from PyQt5.QtWidgets import QApplication from dotenv import load_dotenv import telepot load_dotenv(verbose=True) if __name__ == "__main__": app = QApplication(sys.argv) bot = telepot.Bot(os.getenv('TELEGRAM_TOKEN')) mc = os.getenv('TELEGRAM_ID') bot.sendMessage(mc, "안녕하세요") def handle(msg): print(msg) text = msg['text'] if text == '안녕': bot.sendMessage(mc, '반가워요~') if text == '여긴 어디죠?': bot.sendMessage(mc, 'LED감성 블로그에요') if text == '어디 살아요?': bot.sendMessage(mc, '당신 마음속에요') bot.message_loop(handle) app.exec_()

중요한점은 message_loop 가 멈추지 않고 계속 돌게 해야 합니다.

app.exec_() 가 여기서는 그런 역할을 합니다.

 

네이버 동영상 플레이어

재생시간, 이 동영상의 길이는 16초 입니다.

화질 선택 옵션

  • 270p
  • 360p
  • 480p
  • 720p

화질 선택 옵션

접기/펴기

텔레그램

응용을 해서 봇한테 말을 걸면 키움증권 API를 호출해서 데이터를

if text == '티커출력': dao = StockIdxDAO('Telegram') result = json.dumps(dict((y,x) for x,y in dao.get_ticker_list()), ensure_ascii=False, indent=3) bot.sendMessage(mc, '데이터베이스에서 조회한 티커 목록 결과입니다 \n' + format(result))

'티커출력' 이라는 메시지를 보내면 데이터베이스에서 조회를 해서 응답을 주도록 해봤습니다.

쿼리 조회결과를 튜플로 반환해주고 있어서 딕셔너리 자료형으로 변환한 후 json.dumps 로 읽어서

보기좋게 들여쓰기를 해주고 메시지로 전송해봤습니다.

활용도가 무궁무진 할것 같은데 저는 지금 만들고 있는

증권사API 응용 프로그램에 붙여서 메시지로 전송받도록 만들어봐야겠네요.

출처 : ​https://blog.naver.com/senshig/222593752704

반응형
Comments