Как получить имя пользователя по реплаю в aiogram?
У меня есть код, где пользователь может сделать рп-команду, реплая пользователя (отвечая на его сообщение), как получить информацию об этом участнике (например fitst_name)? Ещё хотелось бы реализовать получение фамилии по ID, например что бы пользователь писал «РП пожал руку @username» и бот получал фамилию с этого username (примерно так: Сергей пожал руку Влад) Код:
from aiogram import Bot, types from aiogram.dispatcher import Dispatcher from aiogram.utils import executor from random import randint as ri @dp.message_handler(content_types='text') async def new_message(message: types.Message): if 'РП' in message.text: args = message.text.split() await message.reply(message.from_user.first_name, args[1]) #тут что-то делать if __name__ == '__main__': executor.start_polling(dp)
Отслеживать
задан 6 авг 2022 в 21:15
223 2 2 серебряных знака 12 12 бронзовых знаков
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
UPD:
Вот наверное то, что вы хотели. Подробнее описал вот тут:
@dp.message_handler(commands="handshake") async def send_handshake(message: types.Message): your_id = message.from_id your_name = message.from_user.username try: friend_name = message.reply_to_message.from_user.username friend_id = message.reply_to_message.from_user.id # await message.delete() await message.answer(f'[](tg://user?id=) пожал руку [](tg://user?id=)', parse_mode="Markdown") except: # await message.delete() await message.answer(f'[](tg://user?id=) жмет руку всем', parse_mode="Markdown")
А это результат работы бота:
Как получить username пользователя, который присоединился к чату. Aiogram
Отличий никаких не будет, потому что используется один и тот же API:
@dp.message_handler(content_types=['new_chat_members']) async def new_user_joined(message: types.Message): for new_member in message.new_chat_members first_name = member.first_name # Не может быть пустым last_name = member.last_name # Может быть пустым username = member.username # Может быть пустым # Тут делайте всё, что хотите делать с новым пользователем(-ми)
Отслеживать
ответ дан 28 июл 2021 в 10:54
2,836 1 1 золотой знак 11 11 серебряных знаков 19 19 бронзовых знаков
Да, действительно. Просто я через for и не пробовал) Спасибо огромное!
28 июл 2021 в 12:56
- python
- telegram-bot
- бот
- aiogram
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.22.3688
Как получить username бота или пользователя используя aiogram?
(Все импорты есть)
Вывод: None
Зарянее извиняюсь за глупый вопрос. Я искал в библиотеке aiogram’a, то что бы мне помогло но так и не нашел.
и используя
name = User.full_name
Получал в конце «property object at 0x0322E780» или подобные результаты
Спасибо за помощь)
- Вопрос задан более трёх лет назад
- 13090 просмотров
Комментировать
Решения вопроса 1

soremix @SoreMix Куратор тега Python
На гитхабе aiogram есть ответ в описании

Ответ написан более трёх лет назад
Нравится 1 2 комментария
Василий Волк @VovkVasil Автор вопроса
Хых, спасибо за решение. Но я не на гитхабе читал, а вот тут https://docs.aiogram.dev/en/latest/. Понял свою ошибку)

soremix @SoreMix Куратор тега Python
VovkVasil, по сути, все подобное — это просто библиотеки-обертки для уже существующих API. Ну и авторы в принципе не меняют какие-то базовые вещи, делая как можно похоже на оригинальный API. Класс Message представляет те же самые поля, которые и имеются в оригинале
spoiler

Так что, банальное
message.from_user.first_name
будет работать
Как вывести имя пользователя и бота в Python?
Здравствуйте, не подскажете как вывести в сообщении имя юзера (first.name) и имя бота? Использую библиотеку aiogram.
Раньше использовал teleBot так вот там примерно так будет:
bot.send_message(message.chat.id, "Привет, ! \n Я - , parse_mode='html', reply_markup=markup)
Заранее спасибо.
- Вопрос задан более двух лет назад
- 2935 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 3

soremix @SoreMix Куратор тега Python
message.from_user.last_name message.from_user.first_name
Ответ написан более двух лет назад
Нравится 2 2 комментария
Max020899 @Max020899 Автор вопроса
Оно должно быть вот так?
@dp.message_handler(commands=['start', 'help']) async def send_welcome(message: types.Message): await message.from_user.first_name( "Привет, **! \n Я бот - **", reply = False, parse_mode= 'Markdown')
Просто вообще не выводит ничего.

soremix @SoreMix Куратор тега Python
Max020899, оно и не должно выводить.
В message.from_user.last_name лежит имя пользователя, в message.from_user.first_name — фамилия, в bot.get_me().first_name — имя бота