메세지에 응답하도록 코드를 수정한다. 메세지 응답은 Updater를 이용하여 업데이트가 되며, CommandHandler 나 MessageHandler에 의해 동작하게 되는 데, 우선 MessageHandler 사용법을 정리한다.
아래와 같이 우선 모듈을 불러온다.
from telegram.ext import Updater, MessageHandler, Filters
상태 업데이트를 위해 아래와 같이 Updater 설정한다.
updater = Updater(token = ‘TOKEN HERE’)
그런데 아래와 같은 메세지가 자꾸 뜨면서 문제가 발생했다.
ImportError: cannot import name ‘Type’
찾아보니, 시놀로지에 현재 설치되어 있는 python3 는 3.5.1 인데 Typing 모듈이 없다고 한다.
python3 -m pip install –user typing
내 경우에는 위 코드로 해도 해결이 안된다. Tornado 버젼을 아래와 같이 낮추니 된다.
python3 -m pip install –user tornado==5.1.1
Message Handler 관련하여서는 아래와 같이 설정한다.
1) Handler 가 처리할 function을 정의
2) Handler에 function 등록
3) Updater에 Handler 등록
4) Updater가 얼마나 간격으로 돌게 할지 설정
def get_message(bot, update):
update.message.reply_text(‘메세지를 받았습니다.’)
message_handler = MessageHandler(Filters.text, get_message)
updater.dispatcher.add_handler(message_handler)
updater.start_polling(timeout=3, clean=True)
updater.idle()
잘 돌아간다.
Leave a Reply