Как получить описание пользователя на aiogram который написал /start

Рейтинг: -1Ответов: 1Опубликовано: 25.06.2023

Мне надо описание профиля пользователя получить который напишет команду. Как это можно сделать на aiogram?

Ответы

▲ 4

Для этого есть специальное свойство message.from_user.

Описание свойств этого словаря (message.from_user):

  1. id: число
    Идентификатор (ID) пользователя, который использует бота.

  2. is_bot: булевое значение (True/False)
    True, если это бот;
    False, если это не бот.

    Хотя я не уверен, что с ботом когда-то будет разговаривать другой бот.

  3. first_name: строка
    Имя (first name) пользователя или бота.

  4. last_name: строка. Может быть пустой.
    Фамилия (last name) пользователя или бота.

  5. username: строка. Может быть пустой.
    Имя пользователя или бота в формате @john.

  6. is_premium: булевое значение (True/False)
    True, если пользователь является пользователем Telegram Premium;
    False, если пользователь не является.

  7. full_name: строка
    Имя (first name), и фамилия (last name), собранные воедино.

Все свойства можно использовать через message.from_user.

Пример приветствия пользователя ботом, который использует имя и фамилию (приведён только декоратор с методом):

# Если ещё не импортирован types, нужно добавить импорт
# from aiogram import types

# Если Dispatcher у вас в другой переменной,
# замените dp на имя вашей переменной с объектом Dispatcher.
@dp.message_handler(commands=["start"]): # отвечает на команду start.
async def start_command(message: types.Message):
    first_name = message.from_user.first_name
    last_name = message.from_user.last_name or "" # предотвращение того, что в ответе будет строка "None"

    await message.reply(f"Привет, {first_name} {last_name}! Это тестовый бот для изучения свойств message.from_user в Aiogram.")

Частично взято из документации.