Почему Callback_data не обрабатывается?

Есть код телеграмм бота
Код

import telebot
from telebot import types

rgs_bot = telebot.TeleBot('ключик от бота')


@rgs_bot.message_handler(commands=['start'])
def start(message):
    markup = types.InlineKeyboardMarkup()
    markup.add(types.InlineKeyboardButton('Да, мне интересно!', callback_data='accept'))
    markup.add(types.InlineKeyboardButton('Нет, пожалуй откажусь...', callback_data='decline'))
    rgs_bot.send_message(message.chat.id,
                         f'Привет, <b>{message.from_user.first_name} {message.from_user.last_name}</b>.\n'
                         f'Меня зовут Тупик в программировании на Питоне, и я не совсем человек...\nСкорее бот\n'
                         f'Я могу помочь тебе если ты...бла бла бла', parse_mode='html', reply_markup=markup)


@rgs_bot.message_handler(func=lambda call: True)
def answer(call):
    if call.data == 'accept':
        rgs_bot.send_message(call.chat.id,
                             f'Ну что же...\n'
                             f'Тебя заинтересовало моё предложение?', parse_mode='html')
    elif call.data == 'decline':
        rgs_bot.send_message(call.chat.id,
                             f'Ну что ж.\n'
                             f'Очень жаль...\nЕсли вдруг надумаешь, можешь найти самое первое сообщение, и принять моё предложение в другой раз.\n'
                             f'А пока, извольте откланяться. Спасибо что уделили мне время!', parse_mode='html')


rgs_bot.infinity_polling()



Почему-то callback_data не хочет обрабатываться... Сообщение в телеге появляется, кнопки тоже, но при нажатии ничего не происходит.. В консоли тоже ничего не пишет из ошибок..
  • Вопрос задан
  • 251 просмотр
Решения вопроса 1
@PugLord Автор вопроса
Разобрался.
Этот код работает, поменял кое-что во втором Декораторе:

Рабочий код

import telebot
from telebot import types

rgs_bot = telebot.TeleBot('ключик от бота')


@rgs_bot.message_handler(commands=['start'])
def start(message):
    markup = types.InlineKeyboardMarkup()
    markup.add(types.InlineKeyboardButton('Да, мне интересно!', callback_data='accept'))
    markup.add(types.InlineKeyboardButton('Нет, пожалуй откажусь...', callback_data='decline'))
    rgs_bot.send_message(message.chat.id,
                         f'Привет, <b>{message.from_user.first_name} {message.from_user.last_name}</b>.\n'
                         f'Меня зовут Тупик в программировании на Питоне, и я не совсем человек...\nСкорее бот\n'
                         f'Я могу помочь тебе если ты...бла бла бла', parse_mode='html', reply_markup=markup)


@rgs_bot.callback_query_handler(func=lambda call: True)
def answer(callback_query: types.CallbackQuery):
    if callback_query.data == 'accept':
        rgs_bot.send_message(callback_query.from_user.id,
                             f'Ну что же...\n'
                             f'Тебя заинтересовало моё предложение?', parse_mode='html')
    elif callback_query.data == 'decline':
        rgs_bot.send_message(callback_query.from_user.id,
                             f'Ну что ж.\n'
                             f'Очень жаль...\nЕсли вдруг надумаешь, можешь найти самое первое сообщение, и принять '
                             f'моё предложение в другой раз.\n'
                             f'А пока, извольте откланяться. Спасибо что уделили мне время!', parse_mode='html')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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