Как передать значение переменной в *args через клавиатуру Telebot?
Суть такая, у меня есть inline клавиатура, когда я нажимаю на одну из кнопок мне нужно чтобы она в callback обработчик передала значение переменной, подскажите пожалуйста как такое можно сделать
keyboard = types.InlineKeyboardMarkup()
key = types.InlineKeyboardButton(callback_data='key', text='key')
keyboard.add(key)
@bot.message_handler(regexp='Заявки')
def function(message):
datum = 'Oleg'
bot.send_message(message.chat.id, 'Нажми на кнопку', reply_markup=keyboard)
@bot.callback_query_handler(func=lambda call:True)
def callback(call):
if call.data == 'key':
bot.send_message(message.chat.id, 'тут должен быть олег из переменной datum в функции function')
Ответы (1 шт):
Автор решения: MyZik
→ Ссылка
Примерно так:
@bot.message_handler(regexp='Заявки')
def function(message):
datum = 'Oleg'
keyboard = types.InlineKeyboardMarkup()
key = types.InlineKeyboardButton(callback_data=f"key_{datum}", text='key')
keyboard.add(key)
bot.send_message(message.chat.id, 'Нажми на кнопку', reply_markup=keyboard)
@bot.callback_query_handler(func=lambda call: call.data.startswith('key_'))
def callback(call):
args = call.data.split('_')
callback_value = args[1] # Oleg
bot.send_message(message.chat.id, 'тут должен быть олег из переменной datum в функции function')