지금까지 만든 예매 프로그램의 최대 단점은 예매가 되더라도 제한된 시간 내에 결제를 해야만 한다는 점이다.
매진표 예매를 돌리고 하루종일 쳐다볼 수도 없는 노릇이고, 이럴때 알림 서비스가 필요하다.
카카오톡이나 문자가 제일 좋지만 돈이 들어가는 관계로, 무료로 사용가능한 텔레그램과 이메일로만 구현하고자 한다.
이번 글에서 텔레그램 기능을 만들고, 다음 글에서 이메일 기능을 만들어보자.
python에서 텔레그램 메세지를 보내기 위해서 python-telegram-bot을 설치한다.
pip install python-telegram-bot
텔레그램 메세지를 보내려면, bot을 만들어서 token을 발행받고 개인의 chatId가 필요하다.
이건 다른 블로그에서 많이 소개하고 있으니, 아래 블로그를 참고해서 만들자.
아래와 같이 코드를 작성하고 token과 chatid를 입력해서 테스트해보자.
import telegram, asyncio
class Telegram:
def __init__(self, token, chatid):
self.bot = telegram.Bot(token=token)
self.chatid = chatid
def send_message(self, msg):
asyncio.run(self.bot.sendMessage(chat_id=self.chatid, text=msg))
telegram_token = ""
telegram_chatid = ""
tele = Telegram(telegram_token, telegram_chatid)
tele.send_message("test")
메세지가 잘 도착하는 것을 확인할 수 있다:)
우린 pyqt와 연동해야하므로, 예외처리와 콜백함수까지 연결해서 아래와 같이 완성할 수 있다.
import telegram, asyncio
class Telegram:
def __init__(self, token, chatid, error_callback, try_callback):
self.error_callback = error_callback
self.try_callback = try_callback
self.bot = telegram.Bot(token=token)
self.chatid = chatid
def send_message(self, msg):
try:
asyncio.run(self.bot.sendMessage(chat_id=self.chatid, text=msg))
self.try_callback(msg)
return True
except Exception as e:
self.error_callback('텔레그램 발송 실패', f"텔레그램 메세지 {msg} 발송에 실패했습니다 - \n{e}")
return False
[참고 사이트]
'프로젝트 > SRT&KTX 매진표 예매' 카테고리의 다른 글
SRT&KTX 기차표 매크로 예매 - (14) 텔레그램, 이메일 환경설정 UI (0) | 2024.01.17 |
---|---|
SRT&KTX 기차표 매크로 예매 - (13) 예매시 이메일 보내기(smtplib, email) (0) | 2024.01.17 |
SRT&KTX 기차표 매크로 예매 - (11) KTX 승차권 예매 (0) | 2024.01.16 |
SRT&KTX 기차표 매크로 예매 - (10) KTX 승차권 조회 (0) | 2024.01.15 |
SRT&KTX 기차표 매크로 예매 - (9) KTX 역 리스트 조회 (0) | 2024.01.15 |