TypeError: CallbackQuery.__init__() missing 5 required positional arguments: 'id', 'from_user', 'data', 'chat_instance', and 'json_string'

Пишу код на Python для телеграмм бота. Использую либы pyTelegramBotAPI и python-telegram-bot.

При использовании бота все хорошо, но после ввода своего города выскакивает ошибка TypeError: CallbackQuery.init() missing 5 required positional arguments: 'id', 'from_user', 'data', 'chat_instance', and 'json_string'. Я в питоне еще мега зелен, в чем может быть проблема?)

@bot.callback_query_handler(func=lambda call: True)
def callback_handler(call):
    if call.data == 'accept':
        bot.send_message(call.message.chat.id, 'Пожалуйста, введите ваш город:')
        bot.register_next_step_handler(call.message, save_city)

def save_city(message):
    gorod = message.text
    bot.send_message(message.chat.id, f'Ваш город {gorod} успешно сохранен.')
    bot.send_message(message.chat.id, 'Сейчас вы находитесь в главном меню бота. Для управления нажимайте на инлайн-кнопки.', reply_markup=profil)


    callback_handler(types.CallbackQuery(data='accept', message=message))

Ответы (1 шт):

Автор решения: Daniele_Taby

Проблема в вашем коде связана с тем, что вы вызываете конструктор CallbackQuery напрямую, а он ожидает 5 аргументов: 'id', 'from_user', 'data', 'chat_instance' и 'json_string'. Вместо этого, вам нужно использовать метод bot.answer_callback_query() для отправки ответа на ваш запрос обратного вызова.

→ Ссылка