@IKIQ

Telegram aiogram. Как ответить на инлайн кнопку (как обработать callback)?

У моего бота следующая структура:

app
-handlers
--a.py
--keyboards.py
--__init__.py
-__init__.py
config
-bot.ini
bot.py


код bot.py
import asyncio
    
    from aiogram import Bot, Dispatcher, types
    from aiogram.types import BotCommand
    from aiogram.contrib.fsm_storage.memory import MemoryStorage
    
    from app.config_reader import load_config
    from app.handlers.a import register_handlers_a
        
    async def main():
        config = load_config("config/bot.ini")
    
        bot = Bot(token=config.tg_bot.token)
        dp = Dispatcher(bot, storage=MemoryStorage())
    
        register_handlers_a(dp)
        await dp.start_polling()
    
    
    if __name__ == '__main__':
        asyncio.run(main())

код a.py
from aiogram import Dispatcher, types
    from aiogram.dispatcher import FSMContext
    from aiogram.dispatcher.filters.state import State, StatesGroup
    
    import app.handlers.keyboards as kb
    
    class A(StatesGroup):
        waiting_for_initial_data = State()
        waiting_for_time = State()
        
    async def a_start(message: types.Message):
        txt = "Введите исходные данные"
        await message.answer(txt, reply_markup=kb.inline_kb1)
        await A.waiting_for_initial_data.set()
    
    #@dp.inline_handler(lambda inline_query: True)
    async def process_callback_button1(callback_query: types.CallbackQuery):
        await bot.answer_callback_query(callback_query.id)
        await bot.send_message(callback_query.from_user.id, 'Нажата инлайн кнопка!')
    
    
    async def a_initial_data_inputted(message: types.Message, state: FSMContext):
        pass
    
    
    def register_handlers_a(dp: Dispatcher):
        dp.register_message_handler(a_start, commands="a", state="*")
        dp.register_message_handler(a_initial_data_inputted, state=A.waiting_for_initial_data)
        dp.register_callback_query_handler(process_callback_button1, lambda inline_query: True)

Как правильно обработать callback и перейти к следующему State?
  • Вопрос задан
  • 858 просмотров
Решения вопроса 1
@IKIQ Автор вопроса
Сделал
async def process_callback_button1(callback_query: types.CallbackQuery):
    await callback_query.answer( "text")
    await callback_query.message.answer("text")
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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