Как сделать переход по нажатию на кнопку в машину состояния inline button + FSM Telegram bot?

Использую inline button + FSM Telegram bot, я хочу при нажатии на инлайн кнопку под фото, чтобы я попал в машину состояний, совершил некоторые расчеты

from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram import types, Dispatcher
from create_bot import dp, bot
from aiogram.types import ReplyKeyboardRemove, ReplyKeyboardMarkup, KeyboardButton
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
import requests
import telebot
import json
import os

class FSMYenPrice(StatesGroup):
    Yena = State()
    wait_for_number = State()

# Начало диалога
async def command_start(message: types.Message):
    try:
        keyboardStart = types.ReplyKeyboardMarkup(resize_keyboard=True)
        buttonbPriceCheck = ["Расчитать стоимость"]
        keyboardStart.add(*buttonbPriceCheck)

        inline_button_test = InlineKeyboardButton("Test", callback_data="test")
        inline_keyboard = InlineKeyboardMarkup().add(inline_button_test)

        img = open('img/menuimg.png', 'rb')
        await bot.send_photo(message.from_user.id, img, 'Нажми кнопку для выполнения команды test',reply_markup=inline_keyboard, disable_notification=True)
    except:
        await bot.send_message(message.from_user.id, "ОШибка")

# Обработчик инлайн-кнопки
async def test_callback_handler(query: types.CallbackQuery, state: FSMContext):
    # Переходим в состояние ожидания числа
    await FSMYenPrice.wait_for_number.set()

    # Отправляем сообщение с просьбой ввести число
    await bot.answer_callback_query(query.id)
    await bot.send_message(query.from_user.id, "Введите число:")

# Обработчик ввода числа
async def handle_number(message: types.Message, state: FSMContext):
    try:
        # Получаем число из сообщения
        number = float(message.text)

        # Выполняем расчет
        result = number * 0.65

        # Отправляем результат пользователю
        await bot.send_message(message.from_user.id, f"Результат: {result}")

    except ValueError:
        await bot.send_message(message.from_user.id, "Некорректный ввод. Пожалуйста, введите число.")

    # Завершаем машину состояний
    await state.finish()

# Регистрация обработчиков
def register_handlers_client(dp: Dispatcher):
    dp.register_message_handler(command_start, commands=['start','help'])
    dp.register_callback_query_handler(test_callback_handler, lambda c: c.data == 'test', state=FSMYenPrice.Yena)
    dp.register_message_handler(handle_number, state=FSMYenPrice.wait_for_number)

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