Идентификаторы
Все основные сущности — пользователи, чаты, сообщения — имеют числовой ID (64-битный integer).
Chat ID
| Тип чата | Формат |
|---|---|
| Direct (личка) | положительное число, равно user_id собеседника |
| Группа | отрицательное, типа -1234 |
| Канал / Супергруппа | отрицательное, начинается с -100, например -100123456 |
При вызове методов chat_id можно передать как:
- Число —
12345или-1001234. - Строка с числом —
"12345"(например, в JSON). @username— если у чата есть публичный username.
{ "chat_id": -1001234, "text": "Привет" }
{ "chat_id": "@my_channel", "text": "Привет" }
Message ID
message_id уникален в рамках чата, не глобально. Используется в:
reply_to_message_id— отвечать на сообщениеeditMessageText/editMessageMedia/deleteMessagepinChatMessage/unpinChatMessageforwardMessage
User ID
Каждый пользователь имеет постоянный id, не меняющийся при смене @username. Используется в banChatMember, promoteChatMember и т.д.
Бот тоже имеет ID — узнать через getMe.
Получение Chat ID
- В webhook/getUpdates приходит
message.chat.id— сохраните его. - Через
@username:getChat?chat_id=@my_channel→ ответ содержитid. - В UI приложения: ID не виден напрямую, нужно получить через бота.
Совет
Сохраняйте chat_id каждого юзера, который написал боту, в свою БД. Это позволит инициировать рассылку — у бота нет метода «найти чат по username», только если юзер первым с ним заговорил.