Не реагируют на нажатия кнопки в телеграм боте?

Ссылка скопирована
25 апреля 2026 1 ответ

Я пишу на библиотеке aiogram использую версию python 3.11.7 aiogram 2.25.1 Само сообщение и кнопки появляются но при нажатии на кнопку ничего не происходит

from aiogram import Bot, Dispatcher, executor, types  bot = Bot("token") dp = Dispatcher(bot)  @dp.message_handler(commands=["start"]) async def start(message: types.Message):     start_photo = open("HelloMessage.jpg", "rb")     markup = types.InlineKeyboardMarkup(row_width=1)     markup.add(types.InlineKeyboardButton("Подобрать варианты", callback_data='variants'))     markup.add(types.InlineKeyboardButton("Связаться с нами", callback_data='support'))     await bot.send_photo(message.chat.id, photo=start_photo,                          caption="Привет!  Добро пожаловать в наше агентство недвижимости!  Я здесь, чтобы помочь вам найти идеальную квартиру!  Пожалуйста, уточните ваши предпочтения, и мы подберем для вас лучшие варианты. ",                          reply_markup=markup) @dp.message_handler(commands=["support"]) async def support(message: types.Message):     markup = types.InlineKeyboardMarkup(row_width=2)     markup.add(types.InlineKeyboardButton("Продолжить", callback_data='support2'))     markup.add(types.InlineKeyboardButton("Отмена", callback_data='menu'))     await bot.send_message(message.chat.id,                          text="Мы отправим все данные собраные с опроса мы отправим специалисту для улучшения обслуживания и экономии времени",                          reply_markup=markup)  executor.start_polling(dp)

from aiogram import Bot, Dispatcher, executor, types bot = Bot("token") dp = Dispatcher(bot) @dp.message_handler(commands=["start"]) async def start(message: types.Message): start_photo = open("HelloMessage.jpg", "rb") markup = types.InlineKeyboardMarkup(row_width=1) markup.add(types.InlineKeyboardButton("Подобрать варианты", callback_data='variants')) markup.add(types.InlineKeyboardButton("Связаться с нами", callback_data='support')) await bot.send_photo(message.chat.id, photo=start_photo, caption="Привет! Добро пожаловать в наше агентство недвижимости! Я здесь, чтобы помочь вам найти идеальную квартиру! Пожалуйста, уточните ваши предпочтения, и мы подберем для вас лучшие варианты. ", reply_markup=markup) @dp.message_handler(commands=["support"]) async def support(message: types.Message): markup = types.InlineKeyboardMarkup(row_width=2) markup.add(types.InlineKeyboardButton("Продолжить", callback_data='support2')) markup.add(types.InlineKeyboardButton("Отмена", callback_data='menu')) await bot.send_message(message.chat.id, text="Мы отправим все данные собраные с опроса мы отправим специалисту для улучшения обслуживания и экономии времени", reply_markup=markup) executor.start_polling(dp)

Дополнительно:

Ответы:

1.
@dp.message_handler(commands=["support"])
поменяйте на
@dp.callback_query_handler(text="support")
2. Читайте документацию
3. удалите из вопроса токен и обновите его

  • Я правильно поменял?
    from aiogram import Bot, Dispatcher, executor, types  bot = Bot("token") dp = Dispatcher(bot)  @dp.message_handler(commands=["start"]) async def start(message: types.Message):     start_photo = open("HelloMessage.jpg", "rb")     markup = types.InlineKeyboardMarkup(row_width=1)     markup.add(types.InlineKeyboardButton("Подобрать варианты", callback_data='variants'))     markup.add(types.InlineKeyboardButton("Связаться с нами", callback_data='support'))     await bot.send_photo(message.chat.id, photo=start_photo,                          caption="Привет!  Добро пожаловать в наше агентство недвижимости!  Я здесь, чтобы помочь вам найти идеальную квартиру!  Пожалуйста, уточните ваши предпочтения, и мы подберем для вас лучшие варианты. ",                          reply_markup=markup) @dp.callback_query_handler(text="support") async def support(message: types.Message):     markup = types.InlineKeyboardMarkup(row_width=2)     markup.add(types.InlineKeyboardButton("Продолжить", callback_data='support2'))     markup.add(types.InlineKeyboardButton("Отмена", callback_data='menu'))     await bot.send_message(message.chat.id,                          text="Мы отправим все данные собраные с опроса мы отправим специалисту для улучшения обслуживания и экономии времени",                          reply_markup=markup)  executor.start_polling(dp)

    from aiogram import Bot, Dispatcher, executor, types bot = Bot("token") dp = Dispatcher(bot) @dp.message_handler(commands=["start"]) async def start(message: types.Message): start_photo = open("HelloMessage.jpg", "rb") markup = types.InlineKeyboardMarkup(row_width=1) markup.add(types.InlineKeyboardButton("Подобрать варианты", callback_data='variants')) markup.add(types.InlineKeyboardButton("Связаться с нами", callback_data='support')) await bot.send_photo(message.chat.id, photo=start_photo, caption="Привет! Добро пожаловать в наше агентство недвижимости! Я здесь, чтобы помочь вам найти идеальную квартиру! Пожалуйста, уточните ваши предпочтения, и мы подберем для вас лучшие варианты. ", reply_markup=markup) @dp.callback_query_handler(text="support") async def support(message: types.Message): markup = types.InlineKeyboardMarkup(row_width=2) markup.add(types.InlineKeyboardButton("Продолжить", callback_data='support2')) markup.add(types.InlineKeyboardButton("Отмена", callback_data='menu')) await bot.send_message(message.chat.id, text="Мы отправим все данные собраные с опроса мы отправим специалисту для улучшения обслуживания и экономии времени", reply_markup=markup) executor.start_polling(dp)

    Появилась ошибка

    Не реагируют на нажатия кнопки в телеграм боте?

  • Its_IVAN,
    @dp.callback_query_handler(text="support") Обрабатывает нажатие на кнопку, а не сообщение. Вы получаете не message, а call, его нужно по другому обрабатывать.  @dp.callback_query_handler(call: call.data == 'support') async def support(call: types.CallbackQuery):     markup = types.InlineKeyboardMarkup(row_width=2)     markup.add(types.InlineKeyboardButton("Продолжить", callback_data='support2'))     markup.add(types.InlineKeyboardButton("Отмена", callback_data='menu'))     await bot.send_message(call.message.chat.id,                          text="Мы отправим все данные собраные с опроса мы отправим специалисту для улучшения обслуживания и экономии времени",                          reply_markup=markup)

    @dp.callback_query_handler(text="support") Обрабатывает нажатие на кнопку, а не сообщение. Вы получаете не message, а call, его нужно по другому обрабатывать. @dp.callback_query_handler(call: call.data == 'support') async def support(call: types.CallbackQuery): markup = types.InlineKeyboardMarkup(row_width=2) markup.add(types.InlineKeyboardButton("Продолжить", callback_data='support2')) markup.add(types.InlineKeyboardButton("Отмена", callback_data='menu')) await bot.send_message(call.message.chat.id, text="Мы отправим все данные собраные с опроса мы отправим специалисту для улучшения обслуживания и экономии времени", reply_markup=markup)

  • spencer_spfl,
    @dp.callback_query_handler(call: call.data == 'support') async def support(call: types.CallbackQuery):     markup = types.InlineKeyboardMarkup(row_width=2)     markup.add(types.InlineKeyboardButton("Продолжить", callback_data='support2'))     markup.add(types.InlineKeyboardButton("Отмена", callback_data='menu'))     await bot.send_message(call.message.chat.id,                          text="Мы отправим все данные собраные с опроса мы отправим специалисту для улучшения обслуживания и экономии времени",                          reply_markup=markup)

    @dp.callback_query_handler(call: call.data == 'support') async def support(call: types.CallbackQuery): markup = types.InlineKeyboardMarkup(row_width=2) markup.add(types.InlineKeyboardButton("Продолжить", callback_data='support2')) markup.add(types.InlineKeyboardButton("Отмена", callback_data='menu')) await bot.send_message(call.message.chat.id, text="Мы отправим все данные собраные с опроса мы отправим специалисту для улучшения обслуживания и экономии времени", reply_markup=markup)

    Не реагируют на нажатия кнопки в телеграм боте?

    Не хочет оно работать

  • Its_IVAN, а может сначала азы подучите, а потом уже ботов писать?
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Юрий Linux Ответ

Проблема с нажатиями кнопок в телеграм боте может возникать по разным причинам. Вот несколько возможных причин и их решений:

1. Проверьте, правильно ли настроены обработчики кнопок в вашем коде. Убедитесь, что вы правильно передаете данные кнопки в метод sendMessage и что ваш бот правильно обрабатывает нажатия кнопок.

```php

$keyboard = [
    ['Button 1'],
    ['Button 2'],
];
 
$reply_markup = [
    'keyboard' => $keyboard,
    'resize_keyboard' => true,
    'one_time_keyboard' => true,
];
 
$telegram->sendMessage([
    'chat_id' => $chat_id,
    'text' => 'Choose an option:',
    'reply_markup' => json_encode($reply_markup),
]);

$keyboard = [ ['Button 1'], ['Button 2'], ]; $reply_markup = [ 'keyboard' => $keyboard, 'resize_keyboard' => true, 'one_time_keyboard' => true, ]; $telegram->sendMessage([ 'chat_id' => $chat_id, 'text' => 'Choose an option:', 'reply_markup' => json_encode($reply_markup), ]);

```

2. Проверьте, не заблокирован ли ваш бот в Telegram. Иногда боты могут быть заблокированы из-за нарушений правил платформы.

3. Убедитесь, что ваш бот имеет достаточные права для обработки сообщений и нажатий кнопок. Проверьте настройки бота в Telegram Developer Portal.

4. Попробуйте перезапустить ваш бот и проверьте, работает ли он после этого. Иногда проблемы могут возникать из-за временных сбоев.

Если ни одно из вышеперечисленных решений не помогло, попробуйте обратиться к документации Telegram API или задайте вопрос на форуме разработчиков для получения дополнительной помощи.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно