Python. PyTelegramBotAPI, не отправляется сообщение пользователю

from telebot import TeleBot, types

#import config

#bot = TeleBot(config.BOT_TOKEN)


token = "5@#%^*&((*&^$#"
bot = TeleBot(token)


@bot.message_handler(commands=['start'])
def start(message: types.Message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton("?Магазин гемов")
    btn2 = types.KeyboardButton("?Открыть бесплатный ящик")
    markup.add(btn1, btn2)
    bot.send_message(
        message.chat.id,
        text="? Привет, это бот с продажей гемов для игры Brawl Stars.\n"
             "Но вы так же можете испытать удачу и открыть бесплатный ящик с гемами?".format(message.from_user),
        reply_markup=markup)


@bot.message_handler(content_types=['text'])
def func(message: types.Message):
    if message.text == "?Открыть бесплатный ящик":
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        photo = open("C:/Users/miroa/Documents/rght/bot_leon/free_gems.jpg", "rb")
        my = types.KeyboardButton("Забрать?")
        markup.add(my)
        bot.send_photo(message.chat.id, photo,
                       caption='Поздравляем, вы выиграли 550 ?\nЖми кнопку «Забрать»',
                       reply_markup=markup)
    elif message.text == "?Магазин гемов":
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        gem80 = types.KeyboardButton("80?-99₽")
        gem170 = types.KeyboardButton("170?-199₽")
        gem360 = types.KeyboardButton("360?-379₽")
        gem530 = types.KeyboardButton("530?-529₽")
        markup.add(gem80, gem170, gem360, gem530)
        bot.send_message(message.chat.id,
                         text="Ты попал в наш магазин, выбери товар который хочешь купить ?",
                         reply_markup=markup)
        bot.register_next_step_handler(gem80, tag)
    
    elif message.text == "Забрать?":
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        global photo1
        photo1 = open("C:/Users/miroa/Documents/rght/bot_leon/teg_bw.jpg", "rb")
        bot.send_photo(message.from_user.id, photo1,
                       caption="Введите тэг своего аккаунта Brawl Stars\n"
                               "Пример: #VLLQ9GOR\n"
                               "Узнать свой тэг вы можете в профиле игры, пример на фото:",
                       reply_markup=markup)
        bot.register_next_step_handler(message, true_or_false)
################################################################################################
@bot.message_handler(content_types=['text'])
def tag(message: types.Message):
    photo2 = open("C:/Users/miroa/Documents/rght/bot_leon/teg_bw.jpg", "rb")
    if message.text == "80?-99₽":
        bot.send_photo(message.from_user.id, photo2,
                       caption="Введите тэг своего аккаунта Brawl Stars\n"
                               "Пример: #VLLQ9GOR\n"
                               "Узнать свой тэг вы можете в профиле игры, пример на фото:")#вот что не отправляется
################################################################################################
#blablabla
bot.infinity_polling(skip_pending=True)

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

Автор решения: Thommy Serpentes

В данном случае у тебя 2 message_handler с одинаковым фильром апдейта, и в итоге любое текстовое сообщение будет обрабатываться всегда первым, а до второго не дойдет, используй более точные фильтры, например по точному совпадению текста, это атрибут text в messsage_handler

→ Ссылка