Как получить id пользователя через @упоминание в telegram?
Я хочу сделать бота модератора для чата в телеграм, но при написании кода сталкиваюсь с проблемой, что в js и python нет метода для получения юзера из упоминания. Например, мне нужно забанить пользователя, но единственный способ — это ответить на его сообщение. Есть ли какой-то способ получения id в aiogram через упоминание (@юзернейм) или какой можно использовать язык программирования и библиотеку для такой цели?
- Вопрос задан 17 дек. 2022
- 1306 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 1
Совершенствуюсь каждый день
Чтобы получить 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: ')
Код написан довольно костыльно, не могу не согласится, но для примера сгодится.
Ответ написан 21 дек. 2022
Uni0005 @Uni0005 Автор вопроса
user_id = await bot.resolve_peer(mention.group(1)) ^^^^^^^^^^^^^^^^ AttributeError: 'Bot' object has no attribute 'resolve_peer'
Какую версию aiogram вы используете?
Uni0005, забыл упомянуть, что resolve_peer нет в aiogram, для получения этой функции нужно использовать pyrogram. Но вы можете сохранять username пользователя в базу данных вместе с id, и при надобности извлекать эти значения.
Как узнать ID Telegram
Telegram user ID — это цифровой код, который присваивается каждому аккаунту при регистрации. Этот идентификатор нужен системе, чтобы корректно сохранять данные и связывать их с конкретным юзером. Найти ID своего аккаунта или другого чата в меню мессенджера не получиться. К сожалению, такая возможность разработчиками не предусмотрена. Но есть другие способы, как узнать айди. О них мы поговорим в этой статье.
Для чего нужен Telegram user ID?
Многие пользователи знают, что в Телеграм можно устанавливать собственный идентификатор. Это дает возможность находить друг друга и общаться без обмена телефонными номерами. Каждый можете придумать себе имя пользователя, так как оно доступно для редактирования и просмотра в разделе «Настройки». Там же можно сделать ссылку для быстрого перехода в чат.
Telegram ID – это тоже идентификатор, но не для людей, а для системы. Он присваивается профилю пользователя, чату, группе и каналу в момент их создания. ID позволяет образовывать связи между:
- аккаунтами и используемыми ими ботами;
- юзерами и группами, в которые они вступают;
- пользователями.
Таким образом, ID в Телеграм отвечает за корректное взаимодействие профилей в сети. Он играет важную роль при пересылке сообщений, загрузке историй переписок, возможности добавлять кого-то или добавляться самому в чат или группу и так далее. В отличие от имени пользователя ID состоит полностью из цифр, изменить его нельзя. При этом он недоступен для просмотра через меню настроек.
Как узнать свой ID Telegram?
В Telegram создано множество ботов с этой целью, но далеко не все из них работают корректно. Мы рекомендуем использовать бот @getmyid_bot. Из его преимуществ можно выделить исправное функционирование и быструю выдачу результатов. Чтобы узнать свой ID, следуйте пошаговой инструкции:
- Зайдите в поисковую строку приложения и введите @getmyid_bot.
- В выдаче найдите бота, который полностью совпадает с указанным выше именем.
- Нажмите на него, чтобы открыть диалоговое окно.
- Кликните на кнопку «Начать», чтобы запустить работу бота.
- В ответном сообщении сразу же отобразится ваш ID. Смотрите первую строку, которая начинается со слов «Your user». Во второй строчке показывается идентификатор диалога с ботом.
Помимо этого можно использовать бот @userinfobot. Он дополнительно высылает фамилию и имя, с помощью которых можно убедиться в правильности данных.
Как узнать ID другого пользователя в Telegram?
Это не сложнее, чем узнать ID своего аккаунта. Для примера будем использовать тот же бот − @getmyid_bot. Он является универсальным и позволяет проверить не только свои данные, но и узнать информацию о других юзерах. Для этого следуйте пошаговой инструкции:
- Ищем и запускаем бот, как в пункте выше.
- Переходим к списку контактов и открываем диалог с человеком, идентификатор которого нужно вычислить.
- Выбираем любое полученное сообщение из переписки и жмем на «Переслать».
- Адресатом назначаем пользователя @getmyid_bot и нажимает «Отправить».
- В диалоговом окне появятся три строки. Что означают первые две, вы уже знаете, а третья, которая начинается со слов «Forwarded from» − это и есть идентификатор вашего собеседника.
Если у вас стабильное подключение к интернету, то ответ поступит менее чем через секунду. В ином случае на получение информации может уйти больше времени.
Как узнать ID чата Telegram?
В этом случае инструменты, которые упоминались выше, не подойдут. Они могут предоставить только идентификационные данные конкретного человека, пославшего сообщение в личный или публичный чат. Чтобы получить ID Telegram публичного чата или группы, воспользуйтесь ботом @username_to_id_bot. Пошаговая инструкция:
- Ищем @username_to_id_bot через поисковую строку Telegram.
- Запускаем бот нажатием кнопки «Начать».
- Заходим в чат или группу, информацию о которой хотим узнать.
- Копируем ссылку на чат. Её можно найти в настройках чата/группы при нажатии на кнопку «Пригласить». Ссылка будет находиться в верхней части открывшегося окна.
- Далее возвращаемся к нашему боту и отправляем ему скопированную ранее ссылку.
- В ответном сообщении получаем основные данные о чате/группе. В нижней строке будет ID.
Как видите, узнать ID Telegram совсем несложно. Если следовать приведенным здесь пошаговым инструкциям, то у вас обязательно все получится. Удачи!
Как телеграмм боту получить id пользователя который нажал /start
Здравствуйте пишу бота на Python- pyTelegramBotApi. Нужно что бы при нажатии юзером на кнопку старт мне пришел его айди. как выполнить такой запрос ?
Отслеживать
задан 9 июн 2018 в 9:56
125 1 1 золотой знак 3 3 серебряных знака 12 12 бронзовых знаков
В случае с ботами, user_id == message.chat.id
10 июн 2018 в 16:02
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
При нажатии юзером кнопки старт происходит отправка боту сообщения с командой ‘start’, а само сообщения содержит информацию, в том числе id юзера, достать который можно например таким хендлером:
@bot.message_handler(commands=['start']) def start(message): user_id = message.from_user.id
Отслеживать
5,728 3 3 золотых знака 21 21 серебряный знак 44 44 бронзовых знака
Как узнать ID пользователя или чата в Telegram?
Telegram user ID (идентификатор пользователя Telegram) — это уникальный цифровой код, присвоенный каждой учетной записи во время регистрации. Он используется системой в качестве первичного ключа для правильного хранения данных и их привязки к конкретному пользователю. В интерфейсе официального клиента Telegram не предусмотрена возможность просмотра собственного ID или идентификаторов других пользователей и чатов, однако способы сделать это существуют.
Как известно, в Telegram существует возможность задать свой собственный буквенный идентификатор — имя пользователя. По нему пользователи могут находить друг друга без необходимости обмена телефонными номерами. Имя пользователя доступно для редактирования в разделе настроек “Изменить профиль”, там же можно получить ссылку для быстрого перехода к чату с вами.
Что такое Telegram ID?
Telegram ID — это тоже идентификатор, но системный, в отличие от имени пользователя, он неизменяем и может состоять только из цифр. Присваивание ID происходит в момент регистрации учетной записи а также создания чата, бота или канала. Технически этот ID для Telegram является первичным ключом, а это значит, что он уникален, и по нему создаются связи между различными сущностями:
- аккаунты и боты, которые они используют;
- пользователи и группы, к которым они присоединяются;
- отдельные пользователи
ID выполняет важную роль для функционирования мессенджера. Именно им Telegram оперирует при отправке сообщений, загрузке переписки, добавлении пользователя в группу и т.д. Однако для мессенджера он является частью сугубо технической информации, а потому нигде в приложении не демонстрируется в явном виде.
Как узнать свой Telegram ID?
Это можно сделать через API (Application Programming Interface), предоставляемый сервисом. К счастью, напрямую взаимодействовать с ним не потребуется, для этого уже существуют специализированные боты. Не все из них могут похвастать корректной работой. Я рекомендую использовать проверенный бот @getmyid_bot. Он работает стабильно и быстро выдает результат.
Чтобы узнать свой ID, следуйте пошаговой инструкции:
- Перейдите в поле поиска приложения и введите @getmyid_bot.
- В выдаче найдите бота, который точно соответствует указанному выше имени.
- Нажмите на него, чтобы открыть диалог.
- Нажмите на кнопку «Start» (“Запустить”), чтобы активировать работу бота.
- В ответном сообщении сразу же появится ваш ID. В первой строке «Your user ID» — это и есть ID вашей учетной записи. Во второй строке указан ID текущего чата, поскольку вы общаетесь с ботом в личке, а не в публичном чате, он соответствует вашему ID.
Как узнать ID других пользователей?
Это также просто, как узнать ID собственного аккаунта. Снова воспользуемся ботом @getmyid_bot. Он универсален и позволяет видеть не только собственные данные, но и информацию о других пользователях.
Следуйте инструкции:
- Найдите и активируйте бота, как описано в предыдущей инструкции.
- В списке контактов откройте диалог с человеком, чей ID вы хотите проверить.
- Выберите любое входящее сообщение из переписки и нажмите «Переслать».
- Укажите @getmyid_bot в качестве получателя и нажмите «Отправить».
- В диалоговом окне появляются три строки. Вы уже знаете, что означают первые две. Третья строка, начинающаяся со слов «Forwarded from», — это и есть искомый ID другого пользователя.
Как получить идентификатор чата Telegram?
В этом случае предыдущий бот не поможет, он ориентирован на получение данных лишь о конкретных пользователях, но не о группах. Нам потребуется другой бот — @username_to_id_bot.
Пошаговая инструкция:
- Найдите @username_to_id_bot в строке поиска Telegram.
- Нажмите кнопку «Старт», чтобы активировать бота.
- Перейдите чат или группу, о для которой вы хотите получить ID.
- Скопируйте ссылку на чат. Ее можно найти в окне “Информация о группе”, которое открывается кликом по зазванию чата, расположенному над сообщениями.
- Возвращаемся к нашему боту и отправляем ему ссылку.
- В ответном сообщении последняя строка и будет содержать искомый ID.
Таким образом, следуя приведенным инструкциям, получить ID пользователя или группы в Telegram совершенно не сложно.