Эффект живой печати в Telegram ✍️
Как добавить в своего бота функцию "живой печати" как у ChatGPT
Хотите, чтобы ваш бот не просто выдавал готовый текст, а печатал его на глазах у пользователя? Это создаёт эффект живого общения и удерживает внимание. Ниже — полная инструкция по интеграции этой функции в PuzzleBot.
🚀 Пошаговая инструкция
Шаг 1. Первый запрос — черновик с эффектом печати
Добавляем в команду действие HTTP-запрос.
Ссылка: https://api.telegram.org/botТОКЕН_БОТА/sendMessageDraft
"text": " 🔍 Ищу информацию по вашему запросу...\n\n 🔎 Сканирую открытые источники...\n 📊 Анализирую базы данных... ⏳ \n 🔄 Сверяю полученные данные...\n ⚡ Формирую предварительный ответ...\n\nПожалуйста, подождите немного — я обрабатываю ваш запрос."
}
chat_id— ID пользователя в Telegram (подставляется автоматически)draft_id— уникальный идентификатор черновика. Одинаковый ID в нескольких запросах заставляет Telegram обновлять одно и то же сообщение, создавая анимацию печатиtext— текст, который увидит пользователь
Шаг 2. Искусственная задержка (таймаут)
Этот запрос нужен, чтобы пользователь успел увидеть первый черновик до того, как появится финальное сообщение.
Ссылка: https://24applab.ru/tools/timer/timeout.php?timesecond=5
Объяснение:
Второй запрос создаёт искусственную паузу. Без неё третий запрос выполнится мгновенно, и пользователь не увидит анимацию печати.
👉 Подберите время (timesecond=5) под длину вашего текста. Для текста выше достаточно 4–5 секунд.
Шаг 3. Финальное сообщение (с кнопкой и сохранением в чате)
Теперь отправляем обычное сообщение, которое останется в истории чата навсегда.
Ссылка: https://api.telegram.org/botТОКЕН_БОТА/sendMessage
"text": " 🔍 Ищу информацию по вашему запросу...\n\n 🔎 Сканирую открытые источники...\n 📊 Анализирую базы данных... ⏳ \n 🔄 Сверяю полученные данные...\n ⚡ Формирую предварительный ответ...\n\nПожалуйста, подождите немного — я обрабатываю ваш запрос.",
"callback_data": "Название команды"
chat_id— ID пользователяtext— финальный текст (можно изменить, добавив ✅ вместо ⏳)reply_markup— объект, отвечающий за кнопки под сообщениемinline_keyboard— массив кнопок (можно добавить несколько рядов)text(внутри кнопки) — надпись на кнопкеcallback_data— данные, которые бот получит при нажатии (используйте для создания обработчика)
⚠️ ВАЖНО: Почему текст в первом и третьем запросе должен быть одинаковым?
Если вы используете один и тот же текст в черновике и финальном сообщении, создаётся плавный эффект: пользователь видит, как бот "допечатывает" последние слова, и сообщение будто бы превращается в итоговое.
Если текст будет разным — анимация будет дёрганой, и пользователь заметит "склейку".
👉 Совет: в финальном сообщении можно заменить ⏳ на ✅, чтобы показать завершение процесса, но основную структуру текста лучше сохранить.
✅ Результат
- Выводит текст с эффектом набора (благодаря
sendMessageDraft) - В конце оставляет в чате готовое сообщение с кнопкой (благодаря
sendMessage)
Это выглядит максимально естественно и современно!
📌 Примечания
- Не забудьте заменить
ТОКЕН_БОТАна реальный токен вашего бота draft_idдолжен быть уникальным для каждой цепочки сообщений (используйте 777, 778, 779...)- Метод
sendMessageDraftработает только в личных чатах - Если нужно отправить файл — используйте
sendDocument,sendPhotoи т.д. (через обычныйsendMessageэто не работает)
Нужна помощь в настройке?
Подписывайтесь на наш Telegram-канал @ecodetechinfo, где мы регулярно публикуем новые руководства, обновления и лучшие практики по созданию и монетизации Telegram-ботов.