Ошибка при написании бота для тг на Python

Выдает ошибку: self.register_next_step_handler_by_chat_id(message.chat.id, callback, *args, **kwargs)

AttributeError: 'str' object has no attribute 'chat'

Вот код:

a = None 
@bot.message_handler(func=lambda message: message.text == 'test') 
def cha_vib(message): 
    global a 
    bot.send_message(message.chat.id, "Введи цифру") 
    bot.register_next_step_handler(a, save_cha) 
    return a 
 
def save_cha(message): 
    global a 
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True) 
    item1 = types.KeyboardButton("введи цифру") 
    markup.add(item1) 
    a = message.text 
    return a 
@bot.message_handler(func=lambda message: message.text == 'test2') 
def wdw(message): 
    save_cha(message) 
    print(a) 
 
 
 
 
 
if __name__ == "__main__": 
    bot.polling(none_stop=True)

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

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

у вас в строке bot.register_next_step_handler(a, save_cha) думаю надо вместо a передать message

→ Ссылка
Автор решения: Imas

Метод register_next_step_handler ожидает объект сообщения, а не строку. Используйте переменную для хранения состояния.

import telebot
from telebot import types

API_TOKEN = 'YOUR_API_TOKEN'
bot = telebot.TeleBot(API_TOKEN)

a = None

@bot.message_handler(func=lambda message: message.text == 'test')
def cha_vib(message):
    global a
    bot.send_message(message.chat.id, "Введи цифру")
    bot.register_next_step_handler(message, save_cha)

def save_cha(message):
    global a
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    item1 = types.KeyboardButton("введи цифру")
    markup.add(item1)
    a = message.text
    bot.send_message(message.chat.id, "Цифра сохранена", reply_markup=markup)

@bot.message_handler(func=lambda message: message.text == 'test2')
def wdw(message):
    global a
    if a is not None:
        bot.send_message(message.chat.id, f"Сохраненная цифра: {a}")
    else:
        bot.send_message(message.chat.id, "Цифра не сохранена")

if __name__ == "__main__":
    bot.polling(none_stop=True)
→ Ссылка