markup = InlineKeyboardMarkup() # создаём клавиатуру
btn1 = InlineKeyboardButton( # создаём кнопку
"Да", # что будет написано на кнопке
# скрытая строка, которую пользователь не увидит
callback_data=f"yes:{message.chat.id}" # в ней кодируем ответ и id пользователя.
)
btn2 = InlineKeyboardButton( # создаём кнопку
"Нет", # что будет написано на кнопке
# скрытая строка, которую пользователь не увидит
callback_data=f"no:{message.chat.id}" # в ней кодируем ответ и id пользователя.
)
markup.add(btn1, btn2) # довешиваем кнопку на клавиатуру
bot.send_message( # клавиатуру всегда отправляем вместе с сообщением
message.chat.id, # кому?
"Yes/no?", # текст сообщения
reply_markup=markup # прикрепляемая клавиатура
)
# говорим, что этот обработчик будет обрабатывать ТОЛЬКО кнопки "Да",
# так как у них всех скрытая строка (call.data) начинается с "yes:"
@bot.callback_query_handler(func=lambda call: call.data.startswith("yes:"))
def callback_yes(call):
user_id = int(call.data[len("yes:"):]) # убираем yes: из начала, оставляя только user_id
... # тут делаешь реакцию на "да"
# а этот обработчик будет обрабатывать ТОЛЬКО кнопки "Нет",
# так как у них всех скрытая строка (call.data) начинается с "no:"
@bot.callback_query_handler(func=lambda call: call.data.startswith("no:"))
def callback_no(call):
user_id = int(call.data[len("no:"):]) # убираем no: из начала, оставляя только user_id
... # тут делаешь реакцию на "нет"
не могу найти информацию