Как достать id пользователя в телеграм боте?
Нужно достать id пользователя для дальнейших операций? Написал код, но он не видит user_id как переменную, и когда хочу сделать какую-то операцию с юзером, то пишет, что такой переменной не существует. Ниже сам код:
@bot.message_handler(commands=['start'])
def start(message):
user_id = message.from_user.id
Ответы (1 шт):
Автор решения: Юрыч BRO
→ Ссылка
Ваша переменная user_id локальна для данной функции, а значит не доступна в глобальном пространстве имен. Лучше в таком коде использовать класс бота и хранить все что нужно о пользователе в специальном словаре или отдельных полях.
Я не знаком с созданием телеграмм ботов, но могу представить что-то подобное:
class Bot:
def __init__(self, **options):
self.bot_info = ...
self.recent_user_info = {
'user id': None
...
}
def start(self, message):
self.recent_user_info['user id'] = message.from_user.id
...
Все нужные декораторы и детали добавь сам. Перед созданием ботов убедись, что полностью освоил язык.