Закрытый телеграмбот
Использую библиотеку для Python pyTelegramBotAPI. Есть у кого то практика в создании закрытого бота, что бы запретить всем кому не лень обращаться к моему боту.
Пока что я остановился на том, что каждая команда исполняется только тогда, когда message.from_user.id есть в списке доступных пользователей. Но обычному пользователю сложно будет обяснять что такое id телеграм пользователя и как его достать, для того что бы я мог его добавить в этот список.
Ответы (1 шт):
# Узнать chat_id
@bot.message_handler(commands=['getchatid'])
def getchatid(message):
bot.send_message(message.chat.id, 'Ваш Telegram ID: {}'.format(message.chat.id))
# Органичение выполнение команды start
@bot.message_handler(commands=['start'])
def some(message):
if message.chat.id not in users:
bot.send_message(message.chat.id, 'Не дозволено общаться с незнакомцами\n\n'
'/getchatid - узнать ID Telegram')
# Органичение доступа к боту по ID
@bot.message_handler(func=lambda message: message.chat.id not in users)
def some(message):
bot.send_message(message.chat.id, 'Не дозволено общаться с незнакомцами\n\n'
'/getchatid - узнать ID Telegram')
Если пользователя нет в списке, бот предложит команду чтобы узнать id. Дальше на своё усмотрение - можете просить отправить вам, а можете сделать автоматическую отправку id при выполнении команды
Так же можете добавить ограничение на другие команды:
# Органичение выполнение команд comproxystatus, ser2netstatus
@bot.message_handler(func=lambda message: message.chat.id not in users_com2net,
commands=['comproxystatus', 'ser2netstatus'])
def some(message):
bot.send_message(message.chat.id, 'Не дозволено')