Задать вопрос
kavermoki
@kavermoki
junior

Как обойти ошибку сервера Telegram при использовании метода answer_photo?

Использую следующий код для вывода текста через inline кнопку

@dp.callback_query(F.data == 'bt21')
async def process_button_1_press(callback: CallbackQuery):
    await callback.message.edit_text(text='<b>Текст</b>', reply_markup=keyboards.keyboard8, parse_mode='html')


Но если я хочу использовать другой метод, например answer_photo и вывести изображение вместе с текстом, то я полагаю, что не работает аргумент reply_markup=keyboards.keyboard8:

@dp.callback_query(F.data == 'bt21')
async def process_button_1_press(callback: CallbackQuery):
    photo = FSInputFile("monitoring.jpg")
    await callback.message.answer_photo(photo=photo, caption="Текст", reply_markup=keyboards.keyboard8)


Выводится следующая ошибка при нажатии на inline кнопку: Telegram server says - Bad Request: there is no text in the message to edit Странно, так как я с callback_query передаю совершено другую клавиатуру, ну т.е. я не пытаюсь что то отредактировать. Что я упускаю?...

spoiler

TelegramBadRequest: Telegram server says - Bad Request: there is no text in the message to edit
Traceback (most recent call last):
File "C:\Users\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\dispatcher.py", line 309, in _process_update
response = await self.feed_update(bot, update, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\dispatcher.py", line 158, in feed_update
response = await self.update.wrap_outer_middleware(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\middlewares\error.py", line 25, in __call__
return await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\middlewares\user_context.py", line 49, in __call__
return await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python311\Lib\contextlib.py", line 222, in __aexit__
await self.gen.athrow(typ, value, traceback)
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\fsm\storage\memory.py", line 56, in lock
yield
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\fsm\middleware.py", line 42, in __call__
return await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\event\telegram.py", line 121, in trigger
return await wrapped_inner(event, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\event\handler.py", line 43, in call
return await wrapped()
^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\dispatcher.py", line 276, in _listen_update
return await self.propagate_event(update_type=update_type, event=event, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\router.py", line 142, in propagate_event
return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\router.py", line 137, in _wrapped
return await self._propagate_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\router.py", line 162, in _propagate_event
response = await observer.trigger(event, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\event\telegram.py", line 121, in trigger
return await wrapped_inner(event, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\dispatcher\event\handler.py", line 43, in call
return await wrapped()
^^^^^^^^^^^^^^^
File "C:\\*************\*************\***********\******\bot.py", line 244, in process_button_17_press
await callback.message.edit_text(text='Шаг 7\n\n'
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\methods\base.py", line 84, in emit
return await bot(self)
^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\client\bot.py", line 480, in __call__
return await self.session(self, method, timeout=request_timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\client\session\base.py", line 254, in __call__
return cast(TelegramType, await middleware(bot, method))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\client\session\aiohttp.py", line 178, in make_request
response = self.check_response(
^^^^^^^^^^^^^^^^^^^^
File "C:\*************\*************\***********\******\Lib\site-packages\aiogram\client\session\base.py", line 120, in check_response
raise TelegramBadRequest(method=method, message=description)
aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: there is no text in the message to edit
  • Вопрос задан
  • 306 просмотров
Подписаться 1 Простой 5 комментариев
Решения вопроса 1
trapwalker
@trapwalker
Программист, энтузиаст
Чтобы отредактировать сообщение с фото нужно использовать edit_media, а не edit_text
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы