Короткое уведомление бот отправляет, а подробный заказ или пост с фотографией не проходит. Первое подозрение обычно падает на длину. Но одинаковый текст может попасть в разные поля, измениться после подстановки данных или содержать ошибку форматирования.
Начните с ответа Bot API, интерфейса, через который программа обращается к Telegram. Сравните его с текстом, который бот пытался отправить. Для предварительной проверки вставьте готовый текст в счётчик символов Feature IT.
Сначала прочитайте причину отказа
Посмотрите код ошибки и поле description в ответе API. Если используете библиотеку, эти сведения обычно находятся в исключении или журнале отправки. Не ограничивайтесь общей записью «сообщение не отправлено».
| Что видно при проверке | С чего начать |
|---|---|
| API сообщает о слишком длинном сообщении | Проверить итоговый text после подстановок |
| Обычный текст уходит, а с фото возникает отказ | Проверить поле caption |
| Длина небольшая, но ошибка связана с разбором сущностей | Проверить HTML, Markdown и экранирование |
| Ошибка относится к данным кнопки | Проверить callback_data, отдельно от сообщения |
| Даже короткое сообщение не отправляется | Проверить адресата, права и остальные детали ответа API |
В документации Telegram Bot API описаны поля ответа при неудачном запросе. Точная формулировка ошибки может зависеть от ситуации и библиотеки. Для диагностики сохраняйте метод отправки и описание ошибки, но не записывайте в общедоступный лог токен бота и содержимое клиентских заявок.
Проверьте, в какое поле попал текст
У отдельного сообщения и подписи к фотографии разные ограничения. Метод sendMessage принимает в text от 1 до 4096 символов после разбора форматирования. Для подписи caption в sendPhoto указан диапазон от 0 до 1024. Эти значения относятся к отправке через Bot API. Проверить их можно в разделах sendMessage и sendPhoto.
Представьте обычный текст на 1500 русских букв, пробелов и знаков препинания. По длине он проходит как отдельное сообщение, но не помещается в подпись к фото. Удаление пары слов здесь не поможет: нужно заметно сократить подпись или изменить способ подачи.
Оставьте под изображением короткое описание, а подробности отправьте следующим сообщением. Если это инструкция, каталог или условия услуги, можно разместить полный материал на сайте и дать ссылку. Выбор зависит от задачи: читателю должно быть понятно, где продолжение и к чему оно относится.
В счётчике Feature IT режим Telegram показывает ориентир для сообщения. При проверке подписи сравнивайте результат с ограничением поля caption вручную. Этот режим не описывает все поля API.
Считайте готовый текст после подстановок
Шаблон и отправленное сообщение часто имеют разную длину. В шаблоне стоят короткие переменные: имя, состав заказа, адрес, комментарий. В реальном уведомлении вместо них появляются строки из базы.
Например, шаблон подтверждения включает список товаров. На тестовом заказе с одной позицией всё работает. В заказе с десятками позиций список разрастается, и сообщение перестаёт проходить проверку. Уменьшать лимит имени клиента в такой ситуации бессмысленно: основной объём создаёт другой блок.
Проверяйте так:
- Соберите сообщение тем же способом, которым оно формируется перед отправкой.
- Подставьте длинные реалистичные значения и заказ с большим числом позиций.
- Добавьте итоговую ссылку, служебную подпись и промокод, если они используются.
- Вставьте результат в счётчик количества символов.
- Повторите проверку для короткого заказа и для полей, которые могут оказаться пустыми.
Для ручной редакторской проверки используйте обезличенные примеры. Если тестовый вариант уже подходит к границе, сократите повторяющиеся детали. При автоматической отправке проверяйте каждое сформированное сообщение: одна удачная проверка шаблона не ограничивает длину будущих данных.




