Получение user id с username в aiogram(фреймворк для телеграм бота)

Я делаю бота модератора для своей группы, и мне нужно сделать мут и мне нужно с username доставать userid пример "/mute @yevlampyi". Напоминаю использовать некоторые запросы telegram api нельзя с помощью бота


Ответы (1 шт):

Автор решения: MyZik

Вы по сути сами ответили на свой вопрос, через Bot API такое реализовать невозможно. Можно сделать проще, использовать команду ответом на сообщение:

Это будет выглядеть примерно так:

@dp.message_handler(commands=["ban"])
async def ban_user(message: Message):
    chat_id = message.chat.id
    
    if message.type not in ("group", "supergroup"):
        # Команда используется не в чате
        return None

    member = await bot.get_chat_member(message.chat.id, message.from_user.id)

    if not isinstance(member, ChatMemberOwner) or not isinstance(member, ChatMemberAdministrator):
        # Команду использует не владелец или администратор
        return None

    if isinstance(member, ChatMemberAdministrator) and not member.can_restrict_members:
        # Команду использует администратор без прав на бан пользователей
        return None

    if message.reply_to_message is None:
        # Команда используется не ответом на сообщение
        return message.reply("Эту команду нужно использовать ответом на сообщение!")

    await bot.ban_chat_member(chat_id, message.reply_to_message.from_user.id, 1000)
→ Ссылка