from aiogram.dispatcher import FSMContext from aiogram.dispatcher.filters import Text from aiogram.dispatcher.filters.state import State, StatesGroup class AgeInput(StatesGroup): age = State() # create bot and dispatcher objects... dispatcher.register_fsm(AgeInput, FSMContext())
@dp.message_handler(commands=['age']) async def cmd_age(message: types.Message): await message.answer('How old are you?') await AgeInput.age.set() @dp.message_handler(state=AgeInput.age) async def process_age(message: types.Message, state: FSMContext): age = message.text await state.finish() await message.answer(f'Your age is {age}!')In this example, we define a new FSM state group called AgeInput that contains a single state called age. The first handler prompts the user to enter their age and sets the state to age. The second handler is triggered when the user enters a message while in the age state. We retrieve the user's response and send a confirmation message with their age. Finally, we use the FSMContext proxy to finish the interaction and reset the state to the initial state. Overall, the aiogram.dispatcher FSMContext proxy provides a powerful way to manage state in Telegram bots. With it, we can easily keep track of user input and respond accordingly, making our bots more interactive and responsive.