Всем привет! В этой статье разберем один из самых частых вопросов, связанных с Telegram: как узнать Telegram ID — и не только свой, но и группы, канала, чата или бота.

Покажу множество способов — как простых, так и чуть сложнее, но надежнее.

А в конце будет бонус: код для своего бота для получения ID, чтобы не пересылать сообщения в стороннии сервисы.

Код бота мы развернем, буквально за одну минуту, в облаке для простого хостинга ботов Amvera, перетянув файлы в интерфейсе (или сделав git push). Сервис позволит нам обновлять проект одним коммитом в Git и даст бесплатный https домен для webhook. Сделаем это бесплатно, в рамках приветственного баланса на аккаунте.

Если вы просто хотите быстро найти ID и не хотите читать кучу текста — мотайте ближе к середине, когда начнутся способы. Первый из них будет самым простым.

Telegram ID - что это и зачем нужно?

Итак, Telegram ID - это зачастую скрытый уникальный числовой идентификатор, который присваивается каждому пользователю, группе, каналу или боту при создании/регистрации.

Причем айди пользователя никогда не меняется и является постоянным, тогда как айди чата может меняться при миграции в супергруппу.

Его основная суть в однозначной идентификации пользователя, то есть вы сможете по ID идентифицировать пользователя в коде/боте, даже если он сменил никнейм. Чаще всего он используется в разработке или в ботах.

Важная оговорка. Открыть профиль пользователя по ID можно только, если ваши сессии "знакомы": у вас есть сообщения в личке, есть общие чаты и т.п. Если ваши сессии совершенно незнакомы, открыть профиль только по ID не получится.

Отличия Chat ID от User ID

UserID - идентификатор человека (или бота) как пользователя Telegram. Как я уже говорил ранее, он никогда не меняется и является постоянным.

ChatID - идентификатор места, куда пишут: личка, группа, супергруппа, канал. Здесь важно: айди чата лички будет равен UserID пользователя, которому вы пишите. Для ботов также: ID чата = ID пользователя, который пишет этому самому боту. Поэ��ому бот всегда понимает, кому отвечать, просто используя chat.id.

Помимо этого, ChatID супергрупп и каналов имеет уникальный и отличный от обычных Chat/UserID вид: они начинаются с -100.

Давайте же перейдем к самому интересному: к способам поиска ID.

Способ 1: Использование сторонних ботов

Самый популярный путь: написать/переслать сообщение/отправить контакт боту, который показывает ID.

Я развернул код бота из статьи, можно использовать его @AmveraID_bot по ссылке.

Или воспользоваться одним из сторонних популярных - это @getmyid_bot и @username_to_id_bot.

Плюсы: быстро.
Минусы: это сторонний бот, так что не всегда конфиденциально.

Способ 2.1: Отображение ID в клиенте Telegram

Официальный клиент Telegram

В официальном клиенте доступна возможность отображения ID чата/пользователя прямо в интерфейсе. Включить отображение можно, используя пошаговую инструкцию ниже:

  1. Открываем настройки Telegram,

  2. Переходим в "Продвинутые настройки",

Продвинутые настройки
Продвинутые настройки

3. В них мотаем в самый них и открываем "Экспериментальные настройки"

Эксперементальные настройки
Эксперементальные настройки

4. Включаем "Show Peer IDs in Profile"

Включаем настройку
Включаем настройку

5. Все! Теперь, если открыть профиль любого пользователя, вы сможете увидеть его ID.

Telegram ID
Telegram ID

В таком способе есть минусы. Как в уже знаете, Chat ID суперчатов начинается с -100, что очень важно при работе через BotAPI. Однако, используя этот способ, ID будет отображаться без -100.
Просто будьте готовы приписывать -100, если в разработке появятся ошибки.

Сторонние неофициальные клиенты для определения TG ID

В сети есть огромное количество различных клиентов Telegram для ПК и телефонов, которые имеют в себе функционал по умолчанию показывать ID любого источника прямо в интерфейсе. Посоветовать конкретный не могу.

Способ 2.2: Как открыть профиль по URL с User ID

В некоторых клиентах Telegram возможно открыть профиль пользователя, сформировав определенный URL, обращающийся к приложению Telegram.

URL будет выглядеть так:

tg://user?id=<ТУТ-USERID>

Способ 3 (для разработчиков): как достать ID через getUpdates

Для этого способа понадобится токен вашего бота от @BotFather (проверьте, чтоб параллельно не работал webhook или polling - будет конфликт).

Чтобы увидеть ID, откройте следующий URL в браузере или выполните curl в те��минале:

https://api.telegram.org/bot<ВАШ_ТОКЕН>/getUpdates

Вам вернется JSON со всеми данными. В нем ищите:

Способ позволяет узнать Telegram ID чата, группы, бота и пользователя.

Помимо этого, что очевидно, можно использовать любые библиотеки для работы с Telegram. Поскольку это не открытие, расписывать здесь это не буду.

Способ 4: Собственный бот буквально за 5-10 минут.

Чтобы максимизировать приватность и безопасность, можно написать своего бота для определения Telegram ID. Я это уже сделал - скачать код можно в нашем репозитории GitHub.

Обзор функционала бота

Бот содержит в себе следующий функционал:

  • Отправка ID через клавиатуру бота:

    • Выбор пользователя

    • Выбор группы/супергруппы

    • Выбор канала

    • Выбор контакта (своего)

  • Отправка ID чата/канала по @username

  • Отправка ID по reply (ответу) или forward (пересылке сообщений)

Запуск на сервере

Запустим нашего бота в специализированном облаке для хостинга ботов - Amvera.

Это даст возможность простого обновления проектов без настройки инфраструктуры - достаточно перетянуть файлы или закоммитить их в репозиторий. Дополнительно получим бесплатный домен с https для работы webhook.

Для этого зарегистрируемся, получив 111 р. приветственного баланса и перетянем файлы бота в интерфейсе.

Процесс запуска бота для определения Telegram ID
Процесс запуска бота для определения Telegram ID

Осталось подождать пару минут и можно пользоваться своим конфиденциальным ботом.

Пример работы бота по определению Telegram ID
Пример работы бота по определению Telegram ID

Я рассмотрел четыре способа - какой выбрать решать вам. Надеюсь, краткая справка по определению Telegram ID была вам полезна.