Как обработать данные в telegram bot (python)

Подскажите зеленому в данной сфере, делаю ТГ бота

Вопрос следующий: Не могу додуматься как сделать, чтобы пользователь начал вводить свои параметры и они записывались. Пробывал с хендлером не выходит ибо данная функция уже в хендлере )))

Хочу сделать так, чтобы пользователь после получения сообщения начал присылать свои параметры тела, а потом бот все собранные параметры отправил обратно пользователю для подтверждения правильности ввода данных. Буду рад любым подсказкам и наставлениям.

elif message.text == "Корсет":
    keyboard_korset = types.ReplyKeyboardMarkup(resize_keyboard=True)
    key_3_1 = types.KeyboardButton('Вернуться в главное меню')
    keyboard_korset.add(key_3_1)
    bot.send_message(message.chat.id, 'Введите ваши параметры', reply_markup=keyboard_korset)

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

Автор решения: Рустам Рысаев

делал подобное с FSMContext и Aiogram, на вашем примере кода:

class CorsetForm(StatesGroup):
    param1 = State()
    param2 = State()
    param3 = State()



@dp.message(lambda message: message.text == "Корсет")
async def ask_param1(message: types.Message, state: FSMContext):
    await state.set_state(CorsetForm.param1)  # Устанавливаем состояние
    await message.answer("Введите ваш **первый параметр**:")

# Принимаем первый параметр и запрашиваем следующий
@dp.message(CorsetForm.param1)
async def ask_param2(message: types.Message, state: FSMContext):
    await state.update_data(param1=message.text)  # Сохраняем первый параметр
    await state.set_state(CorsetForm.param2)  # Переключаем состояние
    await message.answer("Введите ваш **второй параметр**:")

@dp.message(CorsetForm.param2)
async def ask_param3(message: types.Message, state: FSMContext):
    await state.update_data(param2=message.text)
    await state.set_state(CorsetForm.param3)
    await message.answer("Введите ваш **третий параметр**:")

@dp.message(CorsetForm.param3)
async def confirm_data(message: types.Message, state: FSMContext):
    await state.update_data(param3=message.text)
    data = await state.get_data()
    await state.clear()  # Очищаем состояние
    
    await message.answer(f"Вы ввели:\n"
                         f"Первый параметр: {data['param1']}\n"
                         f"Второй параметр: {data['param2']}\n"
                         f"Третий параметр: {data['param3']}\n\n"
                         "Если всё верно, то продолжите свою логику")

вообще FSMContext хороший инструмент. но если данные надо записывать в базу данных, то советвую попробовать SQlite

→ Ссылка