Всем привет! В этой статье разберем один из самых частых вопросов, связанных с 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 чата/пользователя прямо в интерфейсе. Включить отображение можно, используя пошаговую инструкцию ниже:
Открываем настройки Telegram,
Переходим в "Продвинутые настройки",

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

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

5. Все! Теперь, если открыть профиль любого пользователя, вы сможете увидеть его 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 со всеми данными. В нем ищите:
result[].message.from.id- UserIDresult[].message.chat.id- Chat/Group/ChannelID
Способ позволяет узнать Telegram ID чата, группы, бота и пользователя.
Помимо этого, что очевидно, можно использовать любые библиотеки для работы с Telegram. Поскольку это не открытие, расписывать здесь это не буду.
Способ 4: Собственный бот буквально за 5-10 минут.
Чтобы максимизировать приватность и безопасность, можно написать своего бота для определения Telegram ID. Я это уже сделал - скачать код можно в нашем репозитории GitHub.
Обзор функционала бота
Бот содержит в себе следующий функционал:
Отправка ID через клавиатуру бота:
Выбор пользователя
Выбор группы/супергруппы
Выбор канала
Выбор контакта (своего)
Отправка ID чата/канала по @username
Отправка ID по reply (ответу) или forward (пересылке сообщений)
Запуск на сервере
Запустим нашего бота в специализированном облаке для хостинга ботов - Amvera.
Это даст возможность простого обновления проектов без настройки инфраструктуры - достаточно перетянуть файлы или закоммитить их в репозиторий. Дополнительно получим бесплатный домен с https для работы webhook.
Для этого зарегистрируемся, получив 111 р. приветственного баланса и перетянем файлы бота в интерфейсе.

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

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