CallbackQuery' object has no attribute 'message_id
@dp.callback_query_handler(text = "button1")
async def inline_button1(message: types.Message):
await bot.delete_message(message.chat.id, message.message_id)
await bot.send_message(message.from_user.id, "ИНФОРМАЦИЯ_ПАК_1")
Не работает именно удаление сообщения, что тут не так?
Выбивает ошибку:
Updates were skipped successfully.
Task exception was never retrieved
future: <Task finished name='Task-14' coro=<Dispatcher._process_polling_updates() done, defined at C:\Users\kukuk\PycharmProjects\telegabot\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py:407> exception=AttributeError("'CallbackQuery' object has no attribute 'message_id'")>
Traceback (most recent call last):
File "C:\Users\kukuk\PycharmProjects\telegabot\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 415, in _process_polling_updates
for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
File "C:\Users\kukuk\PycharmProjects\telegabot\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates
return await asyncio.gather(*tasks)
File "C:\Users\kukuk\PycharmProjects\telegabot\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
response = await handler_obj.handler(*args, **partial_data)
File "C:\Users\kukuk\PycharmProjects\telegabot\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 283, in process_update
return await self.callback_query_handlers.notify(update.callback_query)
File "C:\Users\kukuk\PycharmProjects\telegabot\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
response = await handler_obj.handler(*args, **partial_data)
File "C:\Users\kukuk\PycharmProjects\telegabot\main.py", line 27, in inline_button1
await bot.delete_message(message.from_user.id, message.message_id)
AttributeError: 'CallbackQuery' object has no attribute 'message_id'
Goodbye!
Ответы (1 шт):
Автор решения: MyZik
→ Ссылка
Если Вы обрабатываете CallbackQuery, то и приходит в обработчик объект CallbackQuery, а не Message.
@dp.callback_query_handler(text="button1")
async def inline_button1(query: types.CallbackQuery):
user_id = query.message.from_user.id
await query.message.delete()
await bot.send_message(user_id, "ИНФОРМАЦИЯ_ПАК_1")
Или можете не удалять сообщение и отправлять новое, а просто изменить текст:
@dp.callback_query_handler(text="button1")
async def inline_button1(query: types.CallbackQuery):
await query.message.edit_text("ИНФОРМАЦИЯ_ПАК_1")