Объект пользовательского профиля



Метод 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()

Данный код выведет на печать все объекты профиля каждого существующего участника нашей учебной группы.



Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: