Как ограничить доступ к выполнению команд и Reply клавиатуре?
Всех приветствую! Подскажите, как ограничить доступ к выполнению команд и пользовательского ввода с Reply-клавиатуры для user_id, которые отсутствуют в базе данных?
С командами пока не придумал.
Но с обработчиками Reply клавиатуры пробовал так:
def check_id(message):
id = message.from_user.id
cursor.execute('SELECT * FROM registration WHERE user_id=?', (id, )).fetchone()
@bot.message_handler(content_types=['text'])
def statistics_step(message):
if message.text.lower() == 'анкета 1' and check_id is None:
one_anketa_step(message)
if message.text.lower() == 'анкета 2' and check_id is None:
two_anketa_step(message)
Мой способ не сработал, бот совсем перестал реагировать на клавиатуру.
P.S. TelegramBotAPI+SQLite+Python
Ответы (1 шт):
Автор решения: dtroyan
→ Ссылка
Попробуйте так, что-то вроде этого. Кстати в условиях вы тоже вроде ошиблись, если я правильно понял вашу логику:
def check_id(message):
id = message.from_user.id
record = cursor.execute('SELECT * FROM registration WHERE user_id=?', (id, )).fetchone()
if record:
return True
else:
return False
@bot.message_handler(content_types=['text'])
def statistics_step(message):
if (message.text.lower() == 'анкета 1') and check_id(message):
one_anketa_step(message)
if (message.text.lower() == 'анкета 2') and check_id(message):
two_anketa_step(message)