Хочу, чтобы команда работала только для определенного человека (по id)
import telebot
bot = telebot.TeleBot('токен моего бота')
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
if message.text == "Привет":
bot.send_message(message.from_user.id, "Привет, чем я могу тебе помочь?")
elif message.text == "/help":
bot.send_message(message.from_user.id, "Напиши привет")
elif message.text == "/start":
bot.send_message(message.from_user.id, "Напиши привет")
else:
bot.send_message(message.chat.id, "Я тебя не понимаю. Напиши /help.")
@bot.message_handler(commands=['info'])
def send_message_user(message):
if message.from_user.id == 'айди человека':
bot.send_message(message.chat.id, 'Hello')
else:
bot.send_message(message.chat.id, 'error')
bot.polling(none_stop=True, interval=0)
Ответы (3 шт):
Автор решения: Константин
→ Ссылка
@bot.message_handler(commands=['info'])
def send_message_user(message):
if message.from_user.id == ВАШ ID:
bot.send_message(message.chat.id, 'Hello')
else:
bot.send_message(message.chat.id, 'error'
Где, ВАШ ID - это число, которое вы можете найти вот в этом боте: https://t.me/username_to_id_bot
Автор решения: Egork.vorobiev
→ Ссылка
Если надо чтобы бот отвечал конкретному человеку, то вот:
@bot.message_handler(commands=['info'])
def send_message_user(message):
if message.from_user.id == id пользователя integer:
bot.send_message(message.chat.id, 'Hello')
else:
bot.send_message(message.chat.id, 'error')
Можно через username:
@bot.message_handler(commands=['info'])
def send_message_user(message):
if message.from_user.username == "Здесь имя пользователя":
bot.send_message(message.chat.id, 'Hello')
else:
bot.send_message(message.chat.id, 'error')
Автор решения: User
→ Ссылка
у меня это реализовано так:
@bot.message_handler(commands=['stop']) #
def send_message_user(message):
if message.from_user.id == 1234: #id пользователя
bot.send_message(message.chat.id, 'До свидания, я отключаюсь пока
Создатель не разбудит меня...') # сообщение если id подходит
print('Work stoping...') # вывод сообщения в консоль
bot.stop_polling() # остановка бота
else:
bot.send_message(message.chat.id, 'Ты не имеешь на это прав)') # если id не подходит
это конкретно для определенной команды. А это уже ограничение вообще на все сообщения:
users = [useInfo.id_users] # список id пользователей имеющих доступ к боту
@bot.message_handler(func=lambda message: message.chat.id not in users[0])
def some(message):
file = open('./not.jpeg', 'rb')
bot.send_photo(message.chat.id, file)
bot.send_message(message.chat.id, 'Извините, Создатель не разрешает мне общаться с незнакомыми пользователями.')