Для сохранения текста при обработке callback в aiogram 3 можно использовать контекст состояния (FSMContext) для хранения информации. Вы можете сохранить текст в контексте состояния и обращаться к нему при необходимости.
Чтобы исправить ошибку "AttributeError: 'FSMContext' object has no attribute 'proxy'", убедитесь, что вы правильно настроили состояние и передали его в обработчик inline-кнопки. Во время обработки callback необходимо получить объект FSMContext из контекста и использовать его для сохранения или получения информации.
Пример:
```python
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
bot = Bot("TOKEN")
dp = Dispatcher(bot, storage=MemoryStorage())
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
await message.answer("Нажмите на кнопку", reply_markup=types.InlineKeyboardMarkup().add(types.InlineKeyboardButton("Кнопка", callback_data="button")))
@dp.callback_query_handler(lambda query: query.data == 'button')
async def button_callback(query: types.CallbackQuery, state: FSMContext):
await state.update_data(text="Пример текста")
await query.answer("Текст сохранен")
@dp.message_handler(commands=['show_text'])
async def show_text(message: types.Message, state: FSMContext):
data = await state.get_data()
text = data.get("text")
if text:
await message.answer(text)
else:
await message.answer("Текст не сохранен")
if __name__ == '__main__':
import asyncio
from aiogram import executor
executor.start_polling(dp, loop=asyncio.get_event_loop())
```
В этом примере мы использовали FSMContext для хранения текста при обработке callback и отображения его при запросе. Убедитесь, что вы правильно настроили FSMContext и передали его в обработчик callback_query_handler.