Блог и база знаний сервиса

Отправка сообщения с фото в боте Telegram

Сообщение с фото в Telegram — это формат сообщения, в котором пользователь отправляет изображение вместе с подписью или без неё. Такие сообщения используются в личных чатах, группах и особенно в каналах, где визуальный контент помогает привлечь внимание подписчиков. Фото в Telegram может сопровождаться текстом, хештегами, ссылками и эмодзи, что делает его удобным инструментом для визуального контент-маркетинга и продвижения брендов.

Отправка сообщения с фото в боте Telegram

Какие форматы принимает фото в Telegram и какие бывают ограничения?

Требования к фото при отправке

Telegram Bot API принимает изображения в следующих форматах:

  1. JPEG / JPG — основной и рекомендуемый формат для отправки фото через бота.
  2. PNG — поддерживается, но не всегда рекомендуется, особенно при больших размерах.
  3. WEBP — поддерживается, но чаще используется для стикеров.
  4. GIFне поддерживается в методе и будет отправлена анимация.

Важно: форматы фото, отправляемые ботом, фактически ограничиваются тем, что Telegram распознаёт как "photo". Это означает, что на практике бот должен отправлять изображения в JPEG, чтобы Telegram корректно интерпретировал их как фото (а не как файл).

Имеет ограничение по размеру в 20 МБ.

Параметры и настройки у сообщения с фото

Требования к ссылке на фото

Прямая ссылка на изображение — должна вести непосредственно к файлу, а не к веб-странице.

Пример: https://example.com/images/photo.jpg ✅

Неверно: https://example.com/gallery/photo?id=123 ❌ (это страница, а не файл)

Требования к ссылке на фото-1

Формат изображения — должен быть совместимым (обычно JPG, JPEG, PNG, WEBP):

URL должен оканчиваться на .jpg, .jpeg, .png, .webp и т.п.

Пример: https://cdn.domain.com/photo123.jpg ✅

Файл должен быть публично доступен:

Без авторизации, токенов или cookies.

Telegram (сервер) должен иметь возможность загрузить его напрямую по этому URL.

Контент по URL должен быть валидным изображением:

Заголовок Content-Type должен быть, например: image/jpeg, image/png.

Как получить код картинки для отправки по file_id

Быстро получить код картинки можно двумя способами:

Вставить ссылку на картинку, а потом нажать кнопку “Тестировать”

Как получить код картинки для отправки по file_id-1

Включить режим отладки в событии неизвестная команда/ошибка и отправиnь боту фото, в результате код картинки будет доступен в разделе "Test data"


Как получить код картинки для отправки по file_id-2


Как получить код картинки для отправки по file_id-3

Популярные ошибки при отправке фото в боте Telegram

400 Bad Request: wrong file identifier/HTTP URL specified

Причина:

– Неверный формат photo (например, URL не ведёт к изображению или file_id недействителен).

Как исправить:

– Убедитесь, что:

  1. URL заканчивается на .jpg, .png и ведёт к изображению, а не HTML-странице.
  2. file_id актуален для этого бота (если используется).
  3. Заголовок по URL — Content-Type: image/jpeg или image/png.

📌 Пример неправильного: "https://example.com/page?id=123"

400 Bad Request: wrong type of the web page content

Причина:

– По URL Telegram ожидает изображение, а получает HTML или другой неподдерживаемый тип контента.

Как исправить:

– Проверь, чтобы заголовок Content-Type по ссылке был image/jpeg, image/png и т.п.

400 Bad Request: photo must be non-empty

Причина:

– Отсутствует поле photo или передан пустой файл.

Как исправить:

– Убедись, что поле photo задано правильно (URL, InputFile, или file_id) и изображение действительно существует.

413 Request Entity Too Large

Причина:

– Файл превышает лимит (20 МБ для sendPhoto).

Как исправить:

– Уменьши размер изображения или используй sendDocument (до 50 МБ), если не нужно отображение как фото.

400 Bad Request: chat not found

Причина:

– Указан неправильный chat_id, либо бот не имеет доступа к чату.

Как исправить:

– Убедись, что:

  1. Бот добавлен в группу/канал.
  2. Указан правильный ID (например, @yourchannelname или число).
  3. Бот имеет права на отправку сообщений.


403 Forbidden: bot was blocked by the user

Причина:

– Пользователь или канал заблокировал бота.

Как исправить:

– Никак, кроме как попросить пользователя разблокировать бота.

Техническая информация для «API BOT-MARKET»

Код типа сообщения для отправки запросов (messageType) равен “2”