Неправильный запрос айограммы: невозможно проанализировать кнопку встроенной клавиатуры: текстовые кнопки не разрешены нPython

Программы на Python
Anonymous
Неправильный запрос айограммы: невозможно проанализировать кнопку встроенной клавиатуры: текстовые кнопки не разрешены н

Сообщение Anonymous »

У меня есть проект Aiogram, и я получаю ошибки в файле журнала. Журнал ошибок не предоставляет информацию о том, где именно в проекте это произошло, а только информацию о том, где это произошло в пакете.
TelegramBadRequest: Telegram server says - Bad Request: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/dispatcher.py", line 309, in _process_update
response = await self.feed_update(bot, update, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/dispatcher.py", line 158, in feed_update
response = await self.update.wrap_outer_middleware(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/middlewares/error.py", line 25, in __call__
return await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/middlewares/user_context.py", line 49, in __call__
return await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/fsm/middleware.py", line 42, in __call__
return await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram_dialog/manager/manager_middleware.py", line 77, in __call__
return await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger
return await wrapped_inner(event, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call
return await wrapped()
^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/dispatcher.py", line 276, in _listen_update
return await self.propagate_event(update_type=update_type, event=event, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 142, in propagate_event
return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram_dialog/context/intent_middleware.py", line 186, in process_callback_query
return await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram_dialog/manager/manager_middleware.py", line 77, in __call__
return await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 137, in _wrapped
return await self._propagate_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 170, in _propagate_event
response = await router.propagate_event(update_type=update_type, event=event, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 142, in propagate_event
return await observer.wrap_outer_middleware(_wrapped, event=event, data=kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 137, in _wrapped
return await self._propagate_event(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/router.py", line 162, in _propagate_event
response = await observer.trigger(event, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger
return await wrapped_inner(event, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram_dialog/manager/manager_middleware.py", line 52, in __call__
return await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram_dialog/context/intent_middleware.py", line 198, in context_saver_middleware
result = await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/middleware.py", line 38, in __call__
result = await handler(event, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call
return await wrapped()
^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram_dialog/dialog.py", line 148, in _callback_handler
await dialog_manager.show()
File "/usr/local/lib/python3.12/site-packages/aiogram_dialog/manager/manager.py", line 314, in show
sent_message = await self.message_manager.show_message(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram_dialog/manager/message_manager.py", line 186, in show_message
await self.edit_message_safe(bot, new_message, old_message),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram_dialog/manager/message_manager.py", line 274, in edit_message_safe
return await self.edit_message(bot, new_message, old_message)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram_dialog/manager/message_manager.py", line 294, in edit_message
return await self.edit_text(bot, new_message, old_message)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram_dialog/manager/message_manager.py", line 312, in edit_text
return await bot.edit_message_text(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/client/bot.py", line 1564, in edit_message_text
return await self(call, request_timeout=request_timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/client/bot.py", line 485, in __call__
return await self.session(self, method, timeout=request_timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/client/session/base.py", line 254, in __call__
return cast(TelegramType, await middleware(bot, method))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/aiogram/client/session/aiohttp.py", line 189, in make_request
response = self.check_response(
^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/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: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard

У меня в проекте только одна встроенная кнопка, и она работает
bot.py
callback_button = InlineKeyboardButton(text="Заказать день рождения", callback_data="request_order_dr")
keyboard = InlineKeyboardMarkup(inline_keyboard=[[callback_button]])

cls._dispatcher.callback_query.register(handlers.request_order_dr, F.data == "request_order_dr")

handlers.py
async def request_order_dr(message: Message, state: FSMContext, dialog_manager: DialogManager):

await TelegramBot.start_bg_dialog(
user=bot.protos.TelegramUser(telegram_id=int(message.from_user.id)),
state=states.Select.RESERVE_CITIES,
)

Другие кнопки — это объекты aiogram_dialog.widgets.kbd Button, все с обработчиком событий on_click
manager_connected = Window(
Const(text.messages['manager_connected']),
Button(
text=Const(text.buttons['send_message_to_manager']),
id='to_send_message_to_manager',
on_click=handlers.on_to_send_message_to_manager,
when=F['has_manager_question_manager_tg_id']
),
SwitchTo(
text=Const(text.buttons['back']),
id='back',
state=states.Organization.MENU
),
state=states.Organization.MANAGER_CONNECTED,
getter=getters.has_manager_question_manager_tg_id
)

Единственное местоположение ошибки проекта — «/app/middleware.py», строка 38, но оно имеет только общий обработчик четности.
result = await handler(event, data)

Может быть, это может быть потому, что URL-адрес aiogram_dialog.widgets.kbd URL-адрес может быть пустым, если не заполнена организация.yandex_reviews_link?
Url(
text=Const(text.buttons['yandex']),
url=Format('{organization.yandex_reviews_link}')
)


Подробнее здесь: https://stackoverflow.com/questions/797 ... are-unallo

Вернуться в «Python»