본문 바로가기
Programming/파이썬

파이썬 Telegram bot 에 버튼 넣기

by 기적 2021. 1. 19.

여기저기 글을 찾아보며 다른분들의 학습한내용을 실행시켜보고

나름대로 기억하기 위해 기록

import telepot
from telepot.loop import MessageLoop # 봇 구동
from telepot.namedtuple import InlineKeyboardMarkup as MARKUP # 마크업
from telepot.namedtuple import InlineKeyboardButton as BTN # 버튼


token = '1586693187:AAHyHFegfJfHh-x4HrgJst2Ktj1z0lr3zZ0' 
ID = '64002766'
bot= telepot.Bot(token)

#bot.sendMessage(ID,"hi")
def btn_show(msg):
    btn1 = BTN(text = "1. Hello", callback_data = "1" )
    btn2 = BTN(text = "2. bye" , callback_data = "2" )
    mu = MARKUP(inline_keyboard = [[btn1, btn2]])
    bot.sendMessage(ID, "선택하세요", reply_markup = mu)




def query_ans(msg):
    query_id = msg["id"]
    query_data =msg["data"]
    if query_data == "1":
        bot.answerCallbackQuery(query_id, text = "안녕하세요")
    elif query_data == "2":
        bot.answerCallbackQuery(query_id, text = "잘가")
    

MessageLoop(bot,{'chat' : btn_show, 'callback_query' : query_ans}).run_as_thread()

결과화면

대략 이런화면이 나옴

중요한 내용은 버튼은  마크업으로 묶인다는 것이다. 잘 포장된 버튼은 sendmessage로 작성되어 전달된다.(버튼을 세로로도 구현가능. 리스트을 위치를 나누면됨)

가끔햇갈리는 내용이 있는데 변수의 첫글자는 대문자는 안된다는 것이다.

참고 내용

네이밍 규칙
: 변수, 상수, 함수, 클래스 등의 이름에 권장되는 규칙

변수
:소문자로 시작, 중간에 _

상수
:모두 대문자, 중간에 _

함수
:소문자로 시작, 중간에 _

c++만 하다보니..

여튼 이러한 버튼들을 만들어 텔래그램에서 손쉽게 명령을 내릴수 있다.

참고 : 초보코딩 유튜브

댓글