@Uni0005

Как получить id пользователя через @упоминание в telegram?

Я хочу сделать бота модератора для чата в телеграм, но при написании кода сталкиваюсь с проблемой, что в js и python нет метода для получения юзера из упоминания. Например, мне нужно забанить пользователя, но единственный способ - это ответить на его сообщение. Есть ли какой-то способ получения id в aiogram через упоминание (@юзернейм) или какой можно использовать язык программирования и библиотеку для такой цели?
  • Вопрос задан
  • 2866 просмотров
Пригласить эксперта
Ответы на вопрос 1
gnifajio
@gnifajio
Совершенствуюсь каждый день
Чтобы получить id пользователя через упоминание в Telegram с помощью aiogram, вам нужно будет сначала извлечь упоминание из сообщения, а затем использовать метод resolve_peer клиента для получения id пользователя.

Вот пример того, как это можно сделать:
import re
from aiogram import Bot, Dispatcher, types

# Инициализируем бота и диспетчер
bot = Bot(token='your_bot_token')
dp = Dispatcher(bot)

@dp.message_handler()
async def handle_message(message: types.Message):
    # Извлекаем упоминание из сообщения
    mention = re.search(r'@(\w+)', message.text)
    if mention:
        # Получаем id пользователя через resolve_peer
        user_id = await bot.resolve_peer(mention.group(1))
        # Теперь можем использовать user_id для выполнения нужных действий
        await message.reply(f'User ID: {user_id}')


Код написан довольно костыльно, не могу не согласится, но для примера сгодится.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы