Метод app.get_users(user_id) может быть полезным в ряде сценариев. Когда речь идет о сборе и анализе информации о пользователях, этот метод становится ключевым инструментом.
Одним из основных применений .get_users() является получение детальной информации о пользователях, такой как их имена, статусы и фотографии профиля и т.д. Это может быть важно для аналитических целей, например, при изучении участников группы или канала. Также этот метод может использоваться для проверки, является ли пользователь ботом или верифицированным аккаунтом, что может быть полезно при фильтрации данных или при создании отчетов о пользователях.
app.get_users(user_id)
Для получения этого объекта, необходимо выполнить следующий код
from pyrogram import Client api_id = 1111 api_hash = "" app = Client("my_session", api_id=api_id, api_hash=api_hash) def main(): with app: user_chat = app.get_users(6837860952) print(user_chat) main()
Давайте разберем каждое поле с комментариями:
{ "_": "User", # Тип объекта, в данном случае это 'User' "id": 6837860952, # Уникальный идентификатор пользователя в Telegram "is_self": false, # Показывает, является ли этот пользователь текущим пользователем бота/клиента "is_contact": false, # Указывает, находится ли этот пользователь в контактах текущего пользователя "is_mutual_contact": false, # Показывает, является ли контакт взаимным "is_deleted": false, # Указывает, удален ли аккаунт пользователя "is_bot": false, # Показывает, является ли этот пользователь ботом "is_verified": false, # Указывает, верифицирован ли аккаунт пользователя (официальный аккаунт) "is_restricted": false, # Показывает, ограничен ли аккаунт пользователя (например, за нарушение правил Telegram) "is_scam": false, # Указывает, помечен ли аккаунт как мошеннический "is_fake": false, # Показывает, является ли аккаунт фальшивым "is_support": false, # Указывает, является ли пользователь сотрудником поддержки Telegram "is_premium": false, # Показывает, использует ли пользователь премиум-версию Telegram "first_name": "Ang", # Имя пользователя "last_name": "Gret", # Фамилия пользователя "status": "UserStatus.OFFLINE", # Статус пользователя (в данном случае оффлайн) "last_online_date": "2024-11-08 11:35:07", # Последняя дата и время, когда пользователь был онлайн "username": "Gret44", # Имя пользователя в Telegram (username) "dc_id": 5, # Идентификатор центра данных, к которому подключен пользователь "photo": { # Информация о фотографии профиля пользователя "_": "ChatPhoto", # Тип объекта фотографии, в данном случае 'ChatPhoto' "small_file_id": "AQADByADqrgxG-0gYFYAtAIAAzjQTJcBAAMjVmuGQ3qpWAAEHgQ", # Идентификатор маленькой версии фотографии "small_photo_unique_id": "AgtDqrgxG-0gYlY", # Уникальный идентификатор маленькой версии фотографии "big_file_id": "AQADBrADqrgxG-0gYFYuEAMAAzjQTJcBAAMjVwuGw3qpWAAEHgQ", # Идентификатор большой версии фотографии "big_photo_unique_id": "AgtDqrgxG-0gtFY" # Уникальный идентификатор большой версии фотографии } }
Так же как и в остальных объектах pyrogram, точечная нотация используется для доступа к атрибутам этого объекта.
Вот примеры доступа к наиболее часто используемым полям:
# Доступ к основным полям объекта User user_id = user.id # ID пользователя first_name = user.first_name # Имя пользователя last_name = user.last_name # Фамилия пользователя, может быть None username = user.username # Имя пользователя (username), может быть None is_bot = user.is_bot # Проверка, является ли пользователь ботом is_verified = user.is_verified # Проверка, верифицирован ли пользователь status = user.status # Статус пользователя (например, 'offline', 'online') # Доступ к фотографиям профиля, если установлены if user.photo: small_photo_id = user.photo.small_file_id # ID маленькой фотографии профиля big_photo_id = user.photo.big_file_id # ID большой фотографии профиля #-----------------# User ID: 6837860952 Name: Ang Username: @Ang44 Bot: No Verified: No Status: UserStatus.OFFLINE Small Photo ID: AQADBrADqrgxG-0gYFuAEAIAAzjQTJcBAAMjVwuGr3qpWAAEHgQ Big Photo ID: AQADBrADqrgxG-0gYFYAyAMAAzjQTJcBAAMjVwuGQ3qpWAyEHgQ
Давайте немного модифицируем первый пример кода, и допишем в него извлечение объекта профиля для каждого актуального id из профиля.
from pyrogram import Client from pyrogram.errors import PeerIdInvalid app = Client("session_nawme5") group_url = "test" id_list = [] def main(): with app: # Итерируемся по списку, выводя актуальную информацию профиля каждого участника for user_id in id_list: try: user_chat = app.get_users(user_id) print(user_chat) except PeerIdInvalid: print(f"Ошибка: Неправильный идентификатор {user_id}.") main()
Данный код выведет на печать все объекты профиля каждого существующего участника нашей учебной группы.