Получение идентификаторов (ID) сущностей используемых в Telegram
Идентификаторы Telegram: пользователи, боты, чаты и ссылки
Данная статья описывает, какие идентификаторы используются в Telegram, чем они отличаются друг от друга и как их быстро получить для интеграций и разработки ботов.
Термины
- Username - публичное имя сущности в Telegram в виде
@name. Может меняться. - Telegram ID - числовой уникальный идентификатор сущности. Постоянный, не меняется.
Что такое Telegram ID и зачем он нужен
Telegram ID - это уникальный числовой идентификатор сущности в Telegram:
- пользователя
- бота
- чата / диалога
- группы
- супергруппы
- канала
ID используется в автоматизации и интеграциях:
- отправка сообщений через ботов
- обработка событий через
webhook/getUpdates
Профиль пользователя
1) @username
Вид: @username (или https://t.me/username)
Особенности:
- может отсутствовать у пользователя
- пользователь может сменить username
- удобно использовать как публичную ссылку/поиск
Как получить:
- вручную: открыть профиль пользователя в Telegram и посмотреть username (если задан)
2) ID пользователя (user_id)
Вид: число, например 123456789
Особенности:
- есть всегда
- не меняется со временем
Как получить:
- через настройки Telegram (вручную):
-
открыть Настройки
-
перейти в Общие
-
включить опцию "Показывать ID чатов в профиле"
-
- через бота @webhelpidbot:
user_id- это ID пользователя, который пишет боту в личные сообщения
Группа / супергруппа
1) @username группы (если группа публичная)
Вид: @groupusername или https://t.me/groupusername
Особенности:
- встречается только у публичных групп (чаще всего - у супергрупп)
- может быть изменён владельцем
- удобно для ссылок и проверки доступности
Как получить:
- вручную: в профиле группы (если задана публичная ссылка)
2) ID группы (chat_id)
Вид: число, обычно отрицательное
Примеры:
- группа:
-123456789 - супергруппа:
-1001234567890123
Особенности:
- присутствует всегда
- не меняется
Как получить через @webhelpidbot:
- добавить бота в нужную группу
- прямо в группе вызвать /id или просто упомянуть бота
- бот вернёт
chat_id(он будет отрицательным - это нормальное поведение Telegram) - Создаём отдельный бот для уведомлений через бот @BotFather
Отправка уведомления в чат Телеграма
- Создаём отдельный бот для уведомлений через бот @BotFather
- Переходим в настройки бота
-
Выставляем так его параметры, отключив Group Privacy
-
Добавляем бот в группу в настройках чата
-
Пишем произвольное сообщение, а лучше несколько в чат для уведомлений
-
Далее копируем API-ключ нашего бота из BotFather и в адресную строку подставляем такую ссылку https://api.telegram.org/botТОКЕНБОТА/getUpdates, выставив вместо ТОКЕНБОТА скопированный API-ключ. После установки ключа нажимаем на кнопку Enter
-
Находим ID чата - он будет отображаться со знаком “-” и будет подписан как “supergroup”. Для удобства поиска можно на странице выставить галочку напротив параметра “Автоформатирование”.
-
Копируем этот параметр со знаком “-” и в интеграции Сенлера выставляем его в параметр ChatID.
-
Выставляем нужный текст и переменные в сообщении и можно тестировать
Канал
1) @username канала (если он публичный)
Вид: @channelusername или https://t.me/channelusername
Особенности:
- доступен только для публичных каналов
- может измениться
- подходит для ссылок на канал и посты
Как получить:
- вручную: в профиле канала
Дополнительно:
Ссылка на конкретный пост: https://t.me/channelusername/<message_id>
2) ID канала (chat_id)
Вид: число, обычно вида -100…
Пример: -1001234567890123
Особенности:
- есть всегда
- не меняется
Как получить:
Способ A - добавить бота администратором
- открыть настройки канала → Администраторы
- добавить @webhelpiebot
- опубликовать любой пост (или отредактировать существующий)
После этого бот поймает событие и подскажет chat_id (обычно через /id в личке или по своей инструкции).
Способ B - переслать пост в бота
- убедиться, что пересылка постов разрешена
- переслать любой пост канала боту @webhelpiebot
- бот определит канал-источник и вернёт его
chat_id
Способ C - восстановить ID по ссылке t.me/c/...
- открыть пост, который выглядит так:
https://t.me/c/XXXXXXXXXX/YY - взять число
XXXXXXXXXX - дописать префикс
-100→ получится-100XXXXXXXXXX - при необходимости сверить через бота
Если пересылка из канала запрещена, используйте Способ A - он обычно самый быстрый и стабильный.