Юзернеймы в TeleBot
Как сделать массив из first_name всех пользователей в чате в pyTelegramBotApi?
Ответы (1 шт):
Телеграм не хранит данные пользователей, которые присоединились к боту. Зато вы можете сами сохранять результаты (к примеру chat_id, или тот же first_name)
Советую хранить именно в базе данных, так как используя списки/множества/словари - вы потеряете данные, как только бот будет перезапущен. Для простых проектов могу посоветовать SQLite. Но если вам нужен именно пример со списками, тогда посмотрите на код ниже:
import telebot
users = []
bot = telebot.TeleBot('token')
@bot.message_handler(commands=['start'])
def start(message):
if message.from_user.first_name not in users:
users.append(message.from_user.first_name)
bot.send_message(message.chat.id, 'Hello')
bot.polling()
Но думаю, вы понимаете, что в этом нет смысла, так как у двух разных юзеров может быть одно и тоже имя. Поэтому лучше, например, записывать в списки chat_id. А еще лучше использовать словарь, если вам не нужна база данных.