Не реагируют на нажатия кнопки в телеграм боте?
Я пишу на библиотеке 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. Проверьте, правильно ли настроены обработчики кнопок в вашем коде. Убедитесь, что вы правильно передаете данные кнопки в метод 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), ]);
```
2. Проверьте, не заблокирован ли ваш бот в Telegram. Иногда боты могут быть заблокированы из-за нарушений правил платформы.
3. Убедитесь, что ваш бот имеет достаточные права для обработки сообщений и нажатий кнопок. Проверьте настройки бота в Telegram Developer Portal.
4. Попробуйте перезапустить ваш бот и проверьте, работает ли он после этого. Иногда проблемы могут возникать из-за временных сбоев.
Если ни одно из вышеперечисленных решений не помогло, попробуйте обратиться к документации Telegram API или задайте вопрос на форуме разработчиков для получения дополнительной помощи.