Как передать значение переменной в *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')
        
→ Ссылка