Как отправить эфемерное сообщение Telegram-бота в группе
Чтобы отправить эфемерное сообщение Telegram-бота в группе или супергруппе, укажите пользователя в receiver_user_id. Обычный бот должен ответить на допустимый callback или входящее эфемерное сообщение в течение 15 секунд. Бот-администратор может обратиться к любому участнику, который не является ботом, без такого триггера. Сообщение увидят только выбранный пользователь и бот, но Telegram не гарантирует доставку, особенно офлайн-получателю.
Главное
- 14 июля 2026 года Bot API 10.2 добавил приватные сообщения бота для отдельного пользователя и эфемерные команды.
- Установите для команды поле
is_ephemeralвtrue, если команда пользователя должна быть скрыта от других участников и ботов. - Обычному боту нужен недавний
callback_query_idилиreply_parameters.ephemeral_message_id; окно ответа составляет 15 секунд. - Бот-администратор может обратиться к любому участнику, который не является ботом, без этих идентификаторов триггера, но доставка всё равно выполняется без гарантии.
- Эфемерные сообщения подходят для обратной связи в интерфейсе, а не для постоянного журнала событий или универсального типа сообщений между платформами.
Что такое эфемерное сообщение Telegram-бота?
Эфемерное сообщение бота — это приватный ответ, который отображается в ленте группы или супергруппы только одному пользователю. Другие участники группы и другие боты его не видят. Telegram приводит в качестве подходящих примеров приветствия, приватные сводки от ИИ, ошибки, подтверждения, контекстные подсказки и меню с кнопками.
Это не то же самое, что гостевой режим Telegram. Гостевой режим определяет, как вызвать бота в чате, к которому он не присоединился. Эфемерные сообщения определяют, кто видит конкретную команду или ответ бота. Кроме того, эта функция отличается от форматирования Rich Messages в Bot API 10.1: то обновление изменило оформление сообщений, а не их видимость.
По данным Telegram, такие взаимодействия могут автоматически исчезнуть через некоторое время или после перезапуска приложения. В официальной документации не указан фиксированный срок жизни, поэтому видимое сообщение не должно быть единственной записью об одобрении, состоянии платежа, решении службы поддержки или другом долгосрочном бизнес-событии.
Какие боты могут отправлять приватные ответы в группах?
Есть два варианта прав доступа. Выберите подходящий до проектирования обработчика, потому что необходимые идентификаторы и поведение доставки различаются.
| Контекст бота | Когда можно отправить | Обязательные данные триггера | Область доставки |
|---|---|---|---|
| Любой бот | В течение 15 секунд после допустимого входящего действия | callback_query_id или reply_parameters.ephemeral_message_id | Клиентское приложение, из которого выполнено действие |
| Бот-администратор чата | В любое время участнику, который не является ботом | Идентификаторы триггера не требуются | Сообщение может попасть на несколько активных клиентов, но это не гарантируется |
В обоих случаях получатель выбирается через receiver_user_id. Исходящие эфемерные сообщения доступны только в группах и супергруппах. Они не заменяют переписку в личном чате.
Ограничение доставки принципиально важно: Telegram прямо указывает, что получение не гарантировано, особенно если пользователь офлайн. Рассматривайте такое сообщение как удобную обратную связь в интерфейсе. Если действие меняет состояние на сервере, сначала сохраните это состояние и предусмотрите возможность получить его позже.
Шаг 1. Объявите эфемерную команду
Вызовите setMyCommands и установите is_ephemeral в true для команд, которые должны оставаться приватными. В следующем гипотетическом примере запрос пользователя /summary скрыт от всех остальных участников группы и ботов:
curl "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/setMyCommands" \
-H "Content-Type: application/json" \
-d '{
"commands": [
{
"command": "summary",
"description": "Summarize this discussion for me",
"is_ephemeral": true
}
],
"scope": {
"type": "all_group_chats"
}
}'
Поле is_ephemeral влияет на команду, которую отправляет пользователь. Само по себе оно не выбирает получателя всех последующих сообщений бота. В запросе на отправку по-прежнему должны быть правильные чат и получатель, а для бота без прав администратора — ещё и допустимый триггер.
Шаг 2. Как отправить эфемерное сообщение Telegram-бота в группе
Для ответа на callback вызовите поддерживаемый метод отправки и передайте chat_id, receiver_user_id и callback_query_id. Bot API 10.2 добавил два эфемерных параметра в sendMessage, а также в поддерживаемые методы отправки медиафайлов, файлов, контактов и геопозиции.
Этот гипотетический запрос отправляет подтверждение одному участнику супергруппы:
curl "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
-H "Content-Type: application/json" \
-d '{
"chat_id": -1001234567890,
"receiver_user_id": 424242424,
"callback_query_id": "4382bfdwdsb323b2d9",
"text": "Your report is ready. Only you can see this confirmation."
}'
Отправьте запрос в пределах 15-секундного окна. Если триггером было входящее эфемерное сообщение, а не callback query, ответьте через reply_parameters.ephemeral_message_id. Не подставляйте обычный message_id: Bot API 10.2 специально разрешает не передавать message_id, когда указан эфемерный идентификатор.
Если бот-администратор инициирует сообщение без недавнего действия, не передавайте callback_query_id и цель эфемерного ответа, но всё равно укажите групповой chat_id и receiver_user_id участника, который не является ботом.
Шаг 3. Редактируйте и удаляйте по эфемерному идентификатору
Сохраните ephemeral_message_id, возвращённый в объекте Telegram Message, вместе с chat_id и receiver_user_id. Обычные методы редактирования и удаления не предназначены для управления жизненным циклом этого типа сообщений.
Используйте специальные методы:
editEphemeralMessageTexteditEphemeralMessageMediaeditEphemeralMessageCaptioneditEphemeralMessageReplyMarkupdeleteEphemeralMessage
Например, для редактирования текста нужны все три идентифицирующих поля:
{
"chat_id": -1001234567890,
"receiver_user_id": 424242424,
"ephemeral_message_id": 781,
"text": "The report is ready to download."
}
Telegram также предупреждает, что события редактирования и удаления могут не дойти до пользователя офлайн. Считайте операции жизненного цикла обновлениями интерфейса без гарантии, а не доказательством того, что человек увидел конфиденциальную информацию или перестал её видеть.
Чек-лист реализации
- Определите тип ответа. Используйте эфемерное сообщение для персональной обратной связи, которая должна отображаться в контексте группы, но не для записей, которые команда обязана хранить.
- Сразу сохраните триггер. Храните
callback_query_idили входящийephemeral_message_idтолько столько, сколько нужно для соблюдения 15-секундного окна. - Проверяйте права на сервере. Скрытая видимость не заменяет авторизацию. Прежде чем формировать сводку, меню или выполнять действие, убедитесь, что у вызывающего пользователя есть необходимые права.
- Храните долгосрочное состояние отдельно. Запишите одобрения, состояние задач и действия поддержки в своей базе данных до подтверждения в интерфейсе.
- Используйте специальные методы жизненного цикла. Храните
chat_id,receiver_user_idиephemeral_message_idкак единый набор для поиска при редактировании и удалении. - Учитывайте возможность недоставки. Если результат должен быть доступен для повторного получения, предложите обычный личный чат, панель управления или повторную попытку.
- Тестируйте роли и клиенты. Проверьте обычного бота и бота-администратора, группы и супергруппы, несколько активных устройств и пользователя офлайн.
Где подходит UnifyPort — и где не подходит
Эфемерные сообщения Telegram — функция Telegram Bot API. В текущей документации UnifyPort API не описаны receiver_user_id, callback_query_id и эфемерные методы редактирования или удаления для POST /v1/messages. Если продукт зависит от такого интерфейса для одного участника группы, используйте официальный Telegram Bot API.
UnifyPort решает задачу на другом уровне: обычные входящие сообщения из поддерживаемых аккаунтов могут поступать в виде нормализованного события message.received, а стандартные ответы на поддерживаемых платформах отправляются через единый message API. Это удобно, когда команде нужна постоянная очередь для Telegram, WhatsApp, LINE, Zalo, TikTok и X. Но UnifyPort не превращает сообщение другой платформы в эфемерный ответ Telegram и не переносит специфичные для Telegram правила видимости.
Если фактическая задача — многоканальная поддержка, а не интерфейс только для Telegram-бота, архитектурные границы объясняет руководство по кросс-канальной автоматизации Telegram.
Ограничения и компромиссы
Выбирайте официальную функцию Bot API, когда бот должен показать приватное подтверждение, ошибку, меню или сводку, не уводя пользователя из группы. Клиенты Telegram обеспечивают нативную видимость для конкретного пользователя и поддерживают текст, ряд медиаформатов и служебных типов сообщений.
Не используйте её для гарантированных оповещений, журналов соответствия требованиям, постоянной истории поддержки или секретов, которые обязательно нужно уметь отозвать. Для пользователя офлайн не гарантированы ни доставка, ни редактирование, ни удаление; сообщение может исчезнуть; фиксированный срок жизни в официальной документации не обещан. Неофициальный интерфейс не может изменить эти гарантии платформы или добавить эфемерное поведение другим каналам.
Частые вопросы
Как отправить эфемерное сообщение Telegram-бота одному участнику группы?
Передайте в группе или супергруппе receiver_user_id и выполните одно из условий: ответьте на допустимый триггер в течение 15 секунд либо используйте бота-администратора. Эфемерное сообщение увидят только выбранный пользователь и бот.
Должен ли бот быть администратором группы?
Не всегда. Любой бот может ответить в течение 15 секунд, если у него есть соответствующий callback_query_id или идентификатор входящего эфемерного сообщения. Бот-администратор может инициировать эфемерное сообщение любому участнику, который не является ботом, без этих идентификаторов.
Сколько хранится эфемерное сообщение Telegram-бота?
Telegram не публикует фиксированный срок жизни. В документации сказано, что взаимодействие может автоматически исчезнуть через некоторое время или после перезапуска приложения, поэтому приложение не должно считать его постоянным хранилищем.
Получит ли пользователь офлайн эфемерное сообщение?
Доставка не гарантирована, особенно когда пользователь офлайн. То же ограничение относится к событиям редактирования и удаления. Для важных результатов предусмотрите способ получить их повторно.
Эфемерные сообщения — это то же самое, что гостевой режим Telegram?
Нет. Гостевой режим определяет, как бот участвует в чате, не присоединяясь к нему. Эфемерные сообщения управляют видимостью команды или ответа внутри группы. Эти функции могут дополнять друг друга, но решают разные задачи.
Следующий шаг
Реализуйте Telegram-специфичный сценарий по официальной документации Bot API об эфемерных сообщениях. Если остальной рабочий процесс требует постоянных сообщений в нескольких провайдерах, перед проектированием общего обработчика изучите матрицу поддержки сообщений провайдеров UnifyPort.
Источники
Официальные источники проверены 20 июля 2026 года: