@antonijjjj

Тг бот должен отвечать готовым сообщением после ввода ника от пользователя?

Хочу сделать кнопку для регистрации ников пользователей.
Как сделать чтобы бот отвечал после того, как пользователь отправит ему свой ник? Использовал метод (messange.content_type == 'text'), перестали работать остальные кнопки.
ПРОБЛЕМНОЕ МЕСТО в функции "написать ник", выводит сообщение сразу, либо после конкретного текста.

import telebot
import random
import time
from telebot import types

bot = telebot.TeleBot('ТОКЕН')

@bot.message_handler(commands=['start'])
def start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard= True)
    reg1 = types.KeyboardButton('Регистрация')
    reg2 = types.KeyboardButton('Выбрать игру')
    markup.add(reg1, reg2)
    reg3 = types.KeyboardButton('Написать никнейм')
    markup.add(reg3)
    bot.send_message(message.chat.id, 'ПРивет, я помогу тебе подобрать промокод', reply_markup=markup)

@bot.message_handler(content_types=['text'])
def name(message):
    if message.chat.type == 'private':
        if message.text == 'Регистрация':
            bot.send_message(message.chat.id, 'Ваш номер в электронной очереди: ' )
            time.sleep(2)
            bot.send_message(message.chat.id,
                         f'Напишите <i>никнейм(id)</i> в игре чтобы бот убедился в существовании аккаунта. '
                         f'Согласно, нашим условиям последняя активность аккаунта не должна быть позднее '
                         f'чем <b>16 часов назад</b>, иначе аккаунт будет считаться фейковым.', parse_mode='html')

      <b>  elif message.text == 'Написать никнейм':
            if message.content_type == 'text':
                bot.send_message(message.chat.id, f'Ваш никнейм успешно зарегистрирован. Наш сотрудник, проверяет аккаунт на соответсвие требованиям активности.',
                             parse_mode='html')</b>
        elif message.text == 'Выбрать игру':
            markup = types.ReplyKeyboardMarkup(resize_keyboard= True)
            btn1 = types.KeyboardButton('PUBG')
            btn3 = types.KeyboardButton('Dota 2')
            markup.add(btn1, btn3)
            btn4 = types.KeyboardButton('CS:GO')
            btn6 = types.KeyboardButton('World of Tanks')
            markup.add(btn4, btn6)
            back = types.KeyboardButton('Назад')
            markup.add(back)
            bot.send_message(message.chat.id, 'ТЕКСТ', parse_mode='html', reply_markup=markup)
  • Вопрос задан
  • 362 просмотра
Пригласить эксперта
Ответы на вопрос 1
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
bot.register_next_step_handler(msg, func)

msg = bot.send_message(message.chat.id, "введите ник")
bot.register_next_step_handler(msg, check_nick)

def check_nick(message):
    bot.send_message(message.chat.id, "прекрасный ник!")
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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