Как Телеграм-боту управлять информацией о пользователях
Боты могут работать в личных сообщениях, в группах и в каналах — в зависимости от их назначения. Эти виды чатов работают по разным правилам, так что в главе «Чаты» мы разберём их все.
Однако тем или иным образом ваш бот всегда будет взаимодействовать с пользователями. На этой странице мы обсудим некоторые общие советы по управлению пользователями.
Профиль пользователя
У пользователей может не быть юзернейма или фамилии — учитывайте это, когда сохраняете данные профиля. В группах это означает, что бот не всегда может упомянуть пользователя по юзернейму (см. упоминания по ID.)
Кроме того, имя, юзернейм и другие данные профиля, кроме ID, могут меняться со временем, поэтому ID — единственный надёжный способ идентифицировать пользователя. Мы рассмотрим ID пользователей более подробно далее в книге.
Не у всех пользователей есть фамилия, поэтому user.full_name — это шорткат, который объединяет имя и фамилию в одну строку, если фамилия есть.
user.full_nameЯзыки пользователей
Бот может узнать язык, который стоит у человека в приложении Телеграма — благодаря этому бот может общаться с пользователем на родном языке.
Однако язык пользователя включается не во все апдейты. Если ваш бот поддерживает несколько языков, Telegram рекомендует использовать последний известный язык, когда эта информация отсутствует в апдейте.
user.language_code # Иногда может быть NoneВидимые пользователи
Бот должен «увидеть» пользователя, чтобы выполнять действия, связанные с ним (например, упоминать его в сообщении). Бот «видит» пользователя, когда, например, получает от него сообщение или получает информацию о нём по имени пользователя.
Это не официальный термин, а условное объяснение того, как работает API Телеграма. Технически говоря, запросы API должны включать не только ID пользователя, но и соответствующий хеш доступа. API предоставляет эти хеши вместе с другой информацией о пользователе в апдейтах. Как Bot API, так и хорошо спроектированные библиотеки Telegram API автоматически обрабатывают кеширование хешей доступа, поэтому обычно вам не нужно об этом думать.
