telegrambot /명령어 입력받기! CommandHandler를 사용한다.
이번 글에서는 두 가지를 살펴본다.
1. /help 라고 입력할 경우 응답하는 내용
2. /say [사용자 입력값] 라고 입력할 경우 응답하는 내용
1. /help 라고 입력할 경우 응답하는 내용
from telegram.ext import Updater, CommandHandler
def help(update, context):
# 설명
context.message.reply_text("/help : kairos 사용 명령어 표시\n/create : 알람 생성")
kairos_token = "[각자의 토큰 입력]"
updater = Updater(kairos_token)
updater.dispatcher.add_handler(CommandHandler('help', help))
updater.start_polling()
updater.idle()
Updater 와 CommandHandler 를 import 한다
콜백할 변수를 선언한다(help)
update, context 두 가지 인수가 필수
context.message.reply_text("출력할 text")
"출력할 text"에서 \n을 하면 개행이 된다.
토큰을 변수에 저장해두고, Updater에 저장해두면 유용하게 사용할 변수~.~를 만들 수 있다
자 이제 유용하게 사용할 변수~.~를 유용하게 쓰면 된다
updater.dispatcher.add_handler(CommandHandler('help', help))
CommandHandler('[사용자가 입력할 글자', [호출할 함수명]))
자 이제 테스트를 해볼까요?
위에 있는 것은 무시해주세요~.~
2. /say [사용자 입력값] 라고 입력할 경우 응답하는 내용
from telegram.ext import Updater, CommandHandler
def say(update, context, args):
output_message = str(context.message.chat_id) + '은 이렇게 말했습니다.\n' + str(args[0])
context.message.reply_text(output_message)
kairos_token = "[각자의 토큰 입력]"
updater = Updater(kairos_token)
updater.dispatcher.add_handler(CommandHandler('say', say, pass_args=True))
updater.start_polling()
updater.idle()
위와 동일하게 import, token을 발급
say라는 함수를 만들었다.
인수로는 세 가지가 있다. update, context, args
CommandHandler에서 pass_args=True 라고 설정하여 던져주고, 받는 함수에서는 args 라는 인수로 받게 된다.
첫번째 인자는 사용자가 호출할 이름, 두번째 인자는 호출될 함수명,
세번째는 arguments를 넘길지 여부이다. 기본값은 False 이다.
args[0] 이라고 함수 내에서 쓸 수 있다. 배열 형태로 전달되니 여러 개 전달도 가능.
오류가 나면 그냥 실행이 안 되어 버린다. 메시지도 없다. 주의!
context.message.chat_id 는 현재 채팅의 아이디이다. 방마다 다르다.
그럼 실행해보겠습니다~.~
공식문서에 더 많은 이야기가 있어요: https://python-telegram-bot.readthedocs.io/en/stable/telegram.ext.commandhandler.html
'개발' 카테고리의 다른 글
ubuntu file encoding 확인 (1) | 2020.05.15 |
---|---|
telegrambot 버튼 이어서 진행 (0) | 2020.05.09 |
telegrambot 생성 (0) | 2020.05.09 |
flutter dependency (0) | 2020.05.03 |
[Pythorch] 참고사이트 (0) | 2020.03.20 |