Ni
APIDebugBot

APIDebugBot: JSON сообщения за секунду

Mini App • Конструкторы ботов

О приложении

Пишете бота и не понимаете, что именно прилетает в обновлении? Документация описывает поля, но живой пример всегда нагляднее. APIDebugBot показывает, как Telegram видит конкретное сообщение, в виде аккуратного JSON.

Бот создан для разработчиков и тех, кто только знакомится с Bot API. Его можно держать в личке или добавить в группу, где вы тестируете своего бота.

Два способа получить JSON

Всё держится на двух действиях, и обе работают без настроек.

  1. Ответ с командой. Ответьте на любое сообщение не от бота командой /debug, и бот пришлёт это сообщение как JSON с отступами.
  2. Пересылка. Перешлите сообщение прямо боту в личку, и он сразу вернёт структуру в таком же виде.

Команда /help в группах не работает, справку лучше открывать в личном чате с ботом. 🙂

Что видно в ответе

В JSON сразу заметна иерархия: от идентификатора сообщения и данных чата до отправителя, даты и содержимого. Если в сообщении есть форматирование, ссылки или упоминания, они лежат в отдельном массиве сущностей со смещениями и длиной.

Для новичка это быстрый способ понять, чем отличается обычный текст от текста с подписью, как выглядит ответ на чужое сообщение и что меняется у пересланных постов.

  • Сущности. Жирный шрифт, ссылки, команды и упоминания приходят с точными позициями в строке.
  • Медиа. Фото, документы и стикеры описываются своими полями с идентификаторами файлов.
  • Пересылки. Видно, откуда пришло сообщение и в каком виде оно сохранилось.

Зачем это в группе

Бот работает и в группах, поэтому удобно собрать тестовую группу, пригласить своего бота и APIDebugBot и смотреть реальные сообщения рядом с поведением вашего кода. Так проще сравнить, что вы ожидали получить и что пришло на самом деле.

Особенно выручает, когда парсер падает на редком типе сообщения, а воспроизвести его самостоятельно не получается. Достаточно ответить на такое сообщение командой /debug.

Про приватность и кэш

Чтобы отвечать на сообщения, бот кэширует их. По описанию проекта, данные из кэша доступны только тем, кто может ответить на это сообщение и так уже видит его. Кэш чистится регулярно, не реже раза в неделю, а при нехватке места и раньше.

Отсюда два практических вывода. Не ждите, что бот найдёт старое сообщение через месяц. И не добавляйте его в закрытые рабочие чаты с чувствительными данными: лучше выбирать публичные или тестовые группы.

Для кого это полезно

  • Начинающие авторы ботов, которые хотят увидеть структуру объектов Bot API на живых примерах.
  • Опытные разработчики, которым нужно быстро сверить поля, не поднимая отдельный отладочный код.
  • Те, кто пишет документацию или обучает и берёт реальные примеры сообщений для разборов.

Если вам нужно смотреть входящие обновления для вашего собственного бота целиком, понадобится логирование на вашей стороне. APIDebugBot решает более узкую задачу: показать одно сообщение в читаемом виде.

Советы по отладке

Сохраняйте полученный JSON как тестовые данные: из него легко сделать пример для модульного теста вашего обработчика. Следите за тем, чтобы в сохранённом примере не оставались чужие идентификаторы и имена людей.

Сравнивайте JSON из бота с тем, что приходит вашему коду. Если поля расходятся, чаще всего дело в версии библиотеки или в том, что она пропускает неизвестные ей поля.

#Telegram#Mini App#Конструкторы ботов

Частые вопросы

Как получить JSON сообщения через APIDebugBot?▼
Ответьте на нужное сообщение командой /debug, и бот пришлёт его как JSON с отступами. Второй путь: перешлите сообщение боту в личку, ответ придёт сразу. Команда работает только для сообщений не от ботов.
Работает ли бот в группах?▼
Да, его можно добавить в группу, в том числе тестовую. Команда /help в группах не работает, справку открывайте в личном чате. Для групп с чувствительными данными лучше его не использовать.
Безопасно ли добавлять бота в чат?▼
Бот кэширует сообщения, чтобы отвечать на них. По описанию проекта, к кэшу имеют доступ только те, кто и так может ответить на сообщение. Кэш очищается минимум раз в неделю. Всё равно добавляйте бота только в публичные или тестовые группы.
Почему бот не находит старое сообщение?▼
Кэш регулярно стирается, при нехватке места даже раньше недели. Для свежих сообщений работает без проблем. Старый пример лучше переслать боту заново или сразу сохранить его JSON.
3.0

На основе данных

ПользователиN/A
ЯзыкEN, RU
ВерифицированоДа