Есть бот заявок в разные отделы, который работает в личке. Для удобства новые заявки мы вывели по личным сообщениям и в конфу. Проблема в том, что если написать в конфе /start, то бот начинает работать в конфе. Как ограничить отправку сообщений от определенного ID ?
Нашел в просторах только один вариант:
# Ограничение доступа к боту по ID
@bot.message_handler(func=lambda message: message.chat.id not in users)
def some(message):
bot.send_message(message.chat.id, 'Не дозволено общаться с незнакомцами')
но не совсем понимаю как сюда впихнуть идшник
Если кол-во людей которому бот разрешает общаться меньше, чем людей которые не могут общаться/писать, то лучше сделать условный вайт-лист и кто там есть, бот может отвечать. Опять же, мысли.
Да, ты задал вопрос по другому, но всё же мои мысли
# разрешенные айдишники
users = [123456789, 987654321]
# Ограничение доступа к боту по ID
@bot.message_handler(func=lambda message: message.chat.id not in users)
def restrict_access(message):
bot.send_message(message.chat.id, 'Не дозволено общаться с незнакомцами')
# для команды старт /start
@bot.message_handler(commands=['start'])
def start_message(message):
if message.chat.id in users:
bot.send_message(message.chat.id, 'Добро пожаловать! Как я могу помочь?')
else:
bot.send_message(message.chat.id, 'Не дозволено общаться с незнакомцами')
semenovmst, убрать not в первом случае, а во втором добавить.
# запрещенные
banned_users = [-123456789]
# Ограничение доступа к боту для запрещённых ID
@bot.message_handler(func=lambda message: message.chat.id in banned_users)
def restrict_access(message):
bot.send_message(message.chat.id, 'Не дозволено общаться с незнакомцами')
# для команды старт /start
@bot.message_handler(commands=['start'])
def start_message(message):
if message.chat.id not in banned_users:
bot.send_message(message.chat.id, 'Добро пожаловать! Как я могу помочь?')
else:
bot.send_message(message.chat.id, 'Не дозволено общаться с незнакомцами')