Telegram бот не отвечает на сообщения, такая же проблема была на стадии выбора проблемы, но решилась через call.data.
Сейчас он не отвечает на сообщение с указанным текстом. Запускается без ошибок. Помогите пожалуйста.
import telebot
from telebot import types, TeleBot
bot = telebot.TeleBot('token')
sex = ''
name = ''
@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
start = types.KeyboardButton('Начать')
markup.add(start)
bot.send_message(message.chat.id, 'Привет, я - бот помощник по тому-то тому...', reply_markup=markup)
@bot.message_handler(content_types=['text'])
def sex(message):
global sex
if message.text == "Начать":
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
male = types.KeyboardButton('Мужской')
female = types.KeyboardButton('Женский')
markup.add(male, female)
bot.send_message(message.from_user.id, "Укажите ваш пол.", reply_markup=markup)
bot.register_next_step_handler(message, get_sex)
def get_sex(message):
global sex
sex = message.text
if message.text == "Мужской":
bot.send_message(message.from_user.id, "Укажите своё имя", parse_mode='html')
bot.register_next_step_handler(message, get_name)
elif message.text == "Женский":
bot.send_message(message.from_user.id, "Укажите своё имя", parse_mode='html')
bot.register_next_step_handler(message, get_name)
else:
bot.send_message(message.chat.id, "Повторите попытку", parse_mode='html')
def get_name(message):
global name
name = message.text
keyboard = types.InlineKeyboardMarkup(); # наша клавиатура
key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes') # кнопка «Да»
keyboard.add(key_yes) # добавляем кнопку в клавиатуру
key_no = types.InlineKeyboardButton(text='Нет', callback_data='nosa') # кнопка << Нет >>
keyboard.add(key_no)
question = f'Ваш пол - {sex}, а имя - {name}?'
bot.send_message(message.from_user.id, text=question, reply_markup=keyboard)
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
if call.data == 'yes':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
prob1 = types.KeyboardButton('Problem 1')
prob2 = types.KeyboardButton('Problem 2')
prob3 = types.KeyboardButton('Problem 3')
markup.add(prob1, prob2, prob3)
bot.send_message(call.message.chat.id, 'Отлично, укажите свою проблему:', reply_markup=markup)
bot.register_next_step_handler(call.message, get_problem)
elif call.data == 'nosa':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
male = types.KeyboardButton('Мужской')
female = types.KeyboardButton('Женский')
markup.add(male, female)
bot.send_message(call.message.chat.id, "Укажите ваш пол.", reply_markup=markup)
bot.register_next_step_handler(call.message, get_sex)
else:
bot.send_message(call.message.chat.id, "Повторите попытку", parse_mode='html')
@bot.message_handler(content_types=['text'])
def get_problem(message):
global problem
problem = message.text
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
yes = types.KeyboardButton('Да')
markup.add(yes)
no = types.KeyboardButton('Нет')
markup.add(no)
bot.send_message(message.from_user.id, f'Ваша проблема - {problem}?', parse_mode='html', reply_markup=markup)
@bot.message_handler(content_types=['text'])
def resend_answer(message):
if message.text == 'Да':
bot.send_message(bot.chat.id, "Хорошо, перeсылаю...", parse_mode='html')
bot.polling(none_stop=True)