Что такое res=False и reply_markup=keyboard?
Иногда замечаю что в ботах для телеграмма на python пишут res=False и reply_markup=keyboard, к примеру:
@bot.message_handler(commands=['start', 'help'])
def send_welcome(message, res=False):
welcome_text = """
Привет! Я умею рассказывать стихи, знаю много интересных фактов и могу показать милых котиков!
"""
keyboard = telebot.types.ReplyKeyboardMarkup(row_width=2, resize_keyboard=True, one_time_keyboard=False)
button1 = telebot.types.KeyboardButton("Факт")
button2 = telebot.types.KeyboardButton("Стихотворение")
button3 = telebot.types.KeyboardButton("Котики")
button4 = telebot.types.KeyboardButton("Стикер")
keyboard.add(button1, button2, button3, button4)
audio = open(r'happy.mp3', 'rb')
bot.send_audio(message.chat.id, audio)
audio.close()
bot.send_message(message.chat.id, welcome_text, reply_markup=keyboard)
Можете объяснить что они делают?
Ответы (1 шт):
Автор решения: dudha369
→ Ссылка
У ботов есть функция замены стандартной клавиатуры на кнопочную. Для этого у всех функций есть опциональный аргумент reply_markup. ReplyKeyboardMarkup – и есть та самая клавиатура. Метод row() создает ряд (максимум 12) из кнопок, передаваемых в качестве аргумента. Также есть особенная клавиатура types.ReplyMarkupRemove(), которая меняет клавиатуру на стандартную. Пример:
from telebot import types
@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup()
buttonA = types.KeyboardButton('A')
buttonB = types.KeyboardButton('B')
buttonC = types.KeyboardButton('C')
markup.row(buttonA, buttonB)
markup.row(buttonC)
bot.send_message(message.chat.id, 'It works!', reply_markup=markup)
Можно создавать клавиатуру для отдельного сообщения. Передавать его нужно так же в аргумент reply_markup:
from telebot import types
@bot.message_handler(commands=['start'])
def start(message):
markup = types.InlineKeyboardMarkup()
buttonA = types.InlineKeyboardButton('A', callback_data='a')
buttonB = types.InlineKeyboardButton('B', callback_data='b')
buttonC = types.InlineKeyboardButton('C', callback_data='c')
markup.row(buttonA, buttonB)
markup.row(buttonC)
bot.send_message(message.chat.id, 'It works!', reply_markup=markup)
