Answer the question
In order to leave comments, you need to log in
Unable to create authorization by chat.id user in Telegram bot Python. What is the problem?
There is a need to provide bot functionality only to certain users by their id.
I created the objects variable in which I registered valid user id's, but I ran into a problem, the bot refuses to check message.chat.id with the values in the variable. Why?
# -*- coding: utf-8 -*-
import telebot #подключение библиотеки Телеграм бота
#Токен доступа к боту
token = 'ТОКЕН'
bot = telebot.TeleBot(token)
#Список разрешенных id
objects = {"4822994**", "4114264**"}
#Клавиатура главного меню
keyboard = telebot.types.ReplyKeyboardMarkup(True)
keyboard.row('/calculator','/timetable')
keyboard.row('/about','/help')
keyboard.row('/feedback')
@bot.message_handler(commands=['start'])
def start_message(message):
if message.chat.id in objects: #Как заставить его прочитать id пользователя и сверить его с id в objects
print("Аутентификация прошла успешно.")
bot.send_message(message.chat.id, 'Вас приветствует Bot!', reply_markup=keyboard)
elif message.chat.id not in objects:
print("Аутентификация не пройдена.")
bot.send_message(message.chat.id,'К сожалению, у вас нет прав доступа к данному боту Ваш ID:' + str(message.chat.id)<code lang="python">
</code>
Answer the question
In order to leave comments, you need to log in
try like this
def start_message(call):
if call.message.chat.id in objects:
print("Аутентификация прошла успешно.")
bot.send_message(call.message.chat.id, 'Вас приветствует Bot!', reply_markup=keyboard)
elif call.message.chat.id not in objects:
print("Аутентификация не пройдена.")
bot.send_message(call.message.chat.id,'К сожалению, у вас нет прав доступа к данному боту Ваш ID:' + str(call.message.chat.id)
The problem is in the types, if str(message.chat.id)
well, check in such situations type(... what was not compared there...)
in this case you have class 'int'
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question