Получение 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)