Как передать id пользователей в обработчик callback_query_handler в pyTelegramBotAPI

Я абсолютно не понимаю как передавать id обоих пользователей (from_user.id и reply_to_message.from_user.id) в обработчик callback_query_handler.

import telebot
import datasafe

bot = telebot.AsyncTeleBot(datasafe.token, parse_mode='MarkdownV2')

merger = telebot.types.InlineKeyboardMarkup()
merger1 = telebot.types.InlineKeyboardButton(
            text='Да', callback_data='merger_yes')
merger.add(merger1)
merger0 = telebot.types.InlineKeyboardButton(
            text='Нет', callback_data='merger_no')
merger.add(merger0)

@bot.message_handler(func=lambda m: True)
def echo_all(message):
    if message.reply_to_message:
        reply_id = message.reply_to_message.from_user.id
        user_id = message.from_user.id
        if message.text == 'Возьмёмся за руки?':
            bot.send_message(reply_id,
                             'Вас хотят взять за руки. Согласится?', reply_markup=merger)

@ bot.callback_query_handler(func=lambda call: True)
def answer(call):
    if call.data == 'merger_yes':
        bot.send_message(call.message.chat.id,
                         f'{user_id} и {reply_id} в паре!')

user_id и reply_id естественно будут неизвестны для callback. Записывать эти id в глобальный словарь бесполезно, ибо по какому ключу callback должен искать? А если создавать конкретный, статический ключ, то он может перезаписаться раз 5 другими пользователями, прежде чем первый получатель клавиатуры подумает и нажмёт на кнопку "Да" или "Нет" что создаст хаос в работе бота. По такому же принципу не представляю возможным запись в БД. Зашёл в тупик с такой странной конструкцией библиотеки для телеграмма. Есть у кого представление или опыт с передачей данных из одного хендлера в другой?


Ответы (0 шт):