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() для отправки ответа на ваш запрос обратного вызова.