@MrBrainop
Начал изучать html, Python и QT Designer

Не работает TelegramBOT?

Не работает Telegram БОТ. После ввода номера телефона крашится бот, в чём ошибка?
Вот код?
@bot.message_handler(commands=['start'])
def handle_text (message):
    bot.send_message(message.chat.id, "Введите ваше ФИО")
    @bot.message_handler(content_types=['text'])
    def user_n(message):
        db_name = message.text
        bot.register_next_step_handler(user_phone(message))

def user_phone(message):
    bot.send_message(message.chat.id, "Введите ваш Номер Телефона")
    @bot.message_handler(content_types=['text'])
    def user_na(message):
        db_phone = message.text
        bot.register_next_step_handler(user_email(message))

def user_email(message):
    bot.send_message(message.chat.id, "Введите ваш Эл.Почту")
    @bot.message_handler(content_types=['text'])
    def user_nam(message):
        db_email = message.text
        bot.register_next_step_handler(user_msg(message))

def user_msg(message):
    bot.send_message(message.chat.id, "Введите ваше сообщение")
    @bot.message_handler(content_types=['text'])
    def user_name(message):
        db_msg = message.text
        bot.register_next_step_handler(test(message))

def test(message):
    bot.send_message(message.chat.id, 'ФИО:', db_name, '\nТел:', db_phone, '\nПочта:', db_email, '\nСообщение', db_msg)


Код из консоли:
2020-08-21 17:24:52,334 (util.py:68 WorkerThread2) ERROR - TeleBot: "TypeError occurred, args=("register_next_step_handler() missing 1 required positional argument: 'callback'",)
Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\util.py", line 62, in run
    task(*args, **kwargs)
  File "C:\Users\User\Desktop\My_Info_Bot\bot-db-2.py", line 25, in user_n
    bot.register_next_step_handler(user_phone(message))
TypeError: register_next_step_handler() missing 1 required positional argument: 'callback'
"
Traceback (most recent call last):
  File "C:\Users\User\Desktop\My_Info_Bot\bot-db-2.py", line 65, in <module>
    bot.polling(none_stop=True)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\__init__.py", line 427, in polling
    self.__threaded_polling(none_stop, interval, timeout)
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\__init__.py", line 451, in __threaded_polling
    self.worker_pool.raise_exceptions()
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\util.py", line 111, in raise_exceptions
    six.reraise(self.exc_info[0], self.exc_info[1], self.exc_info[2])
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\six.py", line 703, in reraise
    raise value
  File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\util.py", line 62, in run
    task(*args, **kwargs)
  File "C:\Users\User\Desktop\My_Info_Bot\bot-db-2.py", line 25, in user_n
    bot.register_next_step_handler(user_phone(message))
TypeError: register_next_step_handler() missing 1 required positional argument: 'callback'
  • Вопрос задан
  • 2611 просмотров
Пригласить эксперта
Ответы на вопрос 2
Dr_Elvis
@Dr_Elvis Куратор тега Python
В гугле забанен
Читайте ошибку, вам явно пишут:
TypeError: register_next_step_handler() missing 1 required positional argument: 'callback'

Почитайте документацию к боту и узнайте что для функции register_next_step_handler необходимо 2 аргумента, а вы передаете 1. об этом стектрейс и говорит, что пропущен 1 аргумент callback. и про callback почитайте тоже, что это такое в принципе.
Ответ написан
Комментировать
Задачу решил переписав немного код. Нужно было убрать строчки @bot.message_handler(content_types=['text']) т.к. они тут ни к чему. Вот собственно код:
user_data= {
    'name': '',
    'phone': '',
    'email': '',
    'message': ''
}

@bot.message_handler(commands=['start', 'go'])
def start_handler(message):
    msg = bot.send_message(message.chat.id, 'Введите Ваше ФИО')
    bot.register_next_step_handler(msg, user_phone)


def user_phone(message):
    user_data['name'] = message.text
    msg = bot.send_message(message.chat.id, 'Введите свой номер телефона')
    bot.register_next_step_handler(msg, user_email)

def user_email(message):
    user_data['phone'] = message.text
    msg = bot.send_message(message.chat.id, 'Введите Вашу эл. почту')
    bot.register_next_step_handler(msg, user_message)

def user_message(message):
    user_data['email'] = message.text
    msg = bot.send_message(message.chat.id, 'Введите ваше сообщение')
    bot.register_next_step_handler(msg, getresults)

def getresults(message):
    user_data['message'] = message.text
    bot.send_message(message.chat.id, f"ФИО: {user_data['name']} \nТел: {user_data['phone']} \nПочта: {user_data['email']} \nСообщение: {user_data['message']}")
    bot.clear_step_handler(message)

6139e3ace61ff086220998.png
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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