Возможно проблема заключается в том, что последняя функция не вызывается при использовании @bot.callback_query_handler(func=lambda call: True)?

Как изменить код для того, чтобы нажатие кнопок "⚙️" и "помощь" в телеграм-боте приводило к отправке определенных сообщений?
  • 11 апреля 2024 г. 16:40
Ответы на вопрос 1
Для того чтобы при нажатии кнопок "⚙️" и "помощь" в телеграм-боте отправлялись определенные сообщения, вы можете использовать следующий код:

```python
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram import executor

API_TOKEN = 'YOUR_API_TOKEN'

bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
dp.middleware.setup(LoggingMiddleware())

@dp.message_handler(commands=['start'])
async def start(message: types.Message):
    keyboard = types.InlineKeyboardMarkup()
    button_settings = types.InlineKeyboardButton(text="⚙️ Настройки", callback_data="settings")
    button_help = types.InlineKeyboardButton(text="Помощь", callback_data="help")
    keyboard.add(button_settings, button_help)
    await message.answer("Выберите действие:", reply_markup=keyboard)

@dp.callback_query_handler(lambda call: True)
async def callback_handler(callback_query: types.CallbackQuery):
    if callback_query.data == 'settings':
        await bot.send_message(callback_query.from_user.id, "Вы нажали на кнопку '⚙️ Настройки'")
    elif callback_query.data == 'help':
        await bot.send_message(callback_query.from_user.id, "Вы нажали на кнопку 'Помощь'")

if __name__ == '__main__':
    print("Bot started")
    executor.start_polling(dp, skip_updates=True)
```

В данном примере при нажатии на кнопку "⚙️" будет отправлено сообщение "Вы нажали на кнопку '⚙️ Настройки'", а при нажатии на кнопку "помощь" будет отправлено сообщение "Вы нажали на кнопку 'Помощь'". Реализация данного функционала осуществляется с использованием InlineKeyboardButton и InlineKeyboardMarkup.

Надеюсь, это поможет вам решить проблему и добиться желаемого поведения вашего телеграм-бота.
Похожие вопросы