Использование register_next_step_handler в общем чате телеграм
подскажите пожалуйста, пишу бота на Python, использую библиотеку pyTelebot. Есть ли возможность использовать бота в групповом чате телеграм и использовать register_next_step_handler, дело в том что при отправлении команды "updatereason" в общий чат, бот откликается, появляется клавиатура, все отрабатывает. Но боту может ответить любой пользователь который находится в чате. Если ли какая то возможность изолировать цепочку вопросов и ответов в общем чате ? Что бы пользователь обратившийся к боту имел что-то типа своей сессии. Ну или хотя бы бот не реагировал на обращение других пользователей, пока первый пользователь не пройдет всю цепочку вопросов и ответов. Вот мой код:
@bot.message_handler(commands=['updatereason']) # Динамические кнопки
def send_welcome(message):
regiddict = {} #Список региона и id для генерации кнопок (сим без причины)
noreasonlist = bd.pars_reasonnull().fetchall()
if len(noreasonlist) != 0:
for i in range(len(noreasonlist)):
regiddict[noreasonlist[i][2]] = noreasonlist[i][0]
markup = types.ReplyKeyboardMarkup(row_width=2, resize_keyboard= True, one_time_keyboard= True, selective=True)
for key in regiddict:
markup.add(types.KeyboardButton(f'{key}'))
msg = bot.reply_to(message, "Choose one letter:", reply_markup=markup)
bot.register_next_step_handler(msg, answerreg,regiddict)
def answerreg(message,regiddict):
valuepop = []
if message.text in regiddict:
value = message.text
valuepop.append(regiddict.pop(value))
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True, selective=True)
markup.add(types.KeyboardButton('Отмена'))
msg = bot.reply_to(message,f"Введите причину!", reply_markup=markup)
bot.register_next_step_handler(msg, reason, valuepop)
def reason(message, valuepop): # Апдейтер причины.
if message.text == 'Отмена':
valuepop.pop()
bot.reply_to(message,"Причина не указана, отмена!")
else:
bd.reason_updater(valuepop.pop(),message.text)
bot.reply_to(message,"Причина активации занесена в базу!")
bot.polling(none_stop=True, )