EnotPRO Logo EnotPRO

Логи

Логи — это окно во внутреннюю работу вашего бота. Здесь отображаются все данные, которые бот получает от Telegram и отправляет обратно, в исходном, необработанном виде.

Логи незаменимы при отладке: вы видите, какие данные пришли от пользователя, какие запросы отправил бот, какие ошибки возникли и что именно пошло не так.

Первый вход: авторизация

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

Как это сделать:

  • Откройте бота
  • Перейдите в раздел /adm → Настройки → Логи
  • Пройдите авторизацию (обычно это подтверждение через Telegram)

После этого страница логов станет доступна в вашем браузере.

Основа работы с логами

Разберем что предлагают логи и в чем полезны.

Логи платформы предлагает следующий интерфейс и функции.

Фильтры

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

Тип Описание
Error ошибки приходящие от Телеграма в ответ на запрос различных методов, а так же ошибки самой платформы, при попытке выполнить невозможное действие.
Context объекты формируемые реакцией Log. Содержат в себе подробные данные о выполняемом действии в моменте.
Update не обработанные данные получаемые от Телеграм в оригинальном виде
Request запросы отправляемые вашим ботом к серверам Телеграм.
Response ответы Телеграма на ваши запросы. В них содержится результат выполнения запросов.

Совет

при отладке включайте только нужные фильтры. Например, для проверки ошибок — только Error. Для анализа того, что приходит от пользователя — Update.

Функции

  • JSON дерево: читаем нечитаемое

Telegram присылает данные в формате JSON — это компактная текстовая строка. Но человеку читать такую строку очень сложно.

Пример JSON объекта

{"message":{"chat":{"first_name":"EnotPro","id":1744260812,"last_name":"Support","type":"private","username":"EnotProSupport"},"date":1774778244,"from":{"first_name":"EnotPro","id":1744260812,"is_bot":false,"language_code":"ru","last_name":"Support","username":"EnotProSupport"},"message_id":5116,"text":"."},"update_id":565657583}

Функция «JSON-дерево» превращает эту строку в структурированный, читаемый вид:

Пример JSON дерева

{
  "message": {
    "chat": {
      "first_name": "EnotPro",
      "id": 1744260812,
      "last_name": "Support",
      "type": "private",
      "username": "EnotProSupport"
    },
    "date": 1774778244,
    "from": {
      "first_name": "EnotPro",
      "id": 1744260812,
      "is_bot": false,
      "language_code": "ru",
      "last_name": "Support",
      "username": "EnotProSupport"
    },
    "message_id": 5116,
    "text": "."
  },
  "update_id": 565657583
}

Как видно, JSON объект превращается в структурированное, понятное и легко читаемое дерево.

Из этих объектов можно получить любую доступную информацию. Информация будет доступна в переменных начинающихся с update:

Переменная Описание
${update.message.chat.id} ID чата где произошло событие
${update.messagefrom.id} ID инициатора события
${update.message.text} текст отправленного сообщения

Важно

Синтаксис переменной — строго ${...}. Не пропускайте знак доллара и фигурные скобки.


  • Развернуть все списки/объекты

Функция напрямую связана с предыдущей "JSON дерево"

По умолчанию, после включения функции "JSON дерево", все приходящие и формируемые апдейты будут появляться в максимально свернутом виде.

Однако, после включения функции "развернуть все списки/объекты", логи по умолчанию будут разворачивать все апдейты.

События

В логах отображаются три базовых типа объектов, которые составляют основу общения между Telegram и ботом.

Объект Описание
update событие которое произошло в Телеграме, которое прислал Телеграм
request запрос отправляемый ботом для выполнения заданных вами методов Telegram bot.api
response ответ Telegram bot.api на ваш запрос, в котором будет указан результат запроса: выполнено, или отклонено

update

update - это JSON-объект с необработанной информацией о событии, которое Telegram отправил боту. Это "сырец", который приходит от Telegram до любой обработки.

request

request - это JSON-объект, который сформировал бот. Он содержит информацию о том, какой метод Telegram API нужно вызвать и с какими параметрами.

response

response - это JSON-объект, который Telegram вернул в ответ на запрос бота. В нем указано:

  • ok: true — запрос выполнен успешно, результат в поле result
  • ok: false — запрос отклонен, в description — текст ошибки

Контекст

Для получения более подробных и отформатированных данных необходимо воспользоваться реакцией Log

Реакция Log преобразует данные в более сформированный и читаемый вид.

После вызова реакции Log, в логах можно будет увидеть следующую картину:

Как видно, формат отображаемых данных сильно изменился и расширился.

Теперь, мы видим гораздо больше информации и информация разделена более удобно.

Разберем более детально.

Объекты доступные в контексте делятся на постоянные и опциональные (появляются после выполнения определенных условий)

Постоянные

Постоянные объекты доступны всегда, независимо от обстоятельств

Объект Описание
bot информация о боте
chat информация о чате где произошло событие
target информация о событии
from информация об инициаторе событии
trigger информация о выполняемом триггере
var информация о созданных реакциями переменных
${bot...}
Пример объекта ${bot}

{
  "bot": {
    "id": 6452427323,
    "name": "enot",
    "owner_id": 255621638,
    "tech_chat_id": -1001798752916,
    "tz": 0,
    "username": "eNotCraftBot"
  },
Переменная Описание
${bot.id} ID бота
${bot.name} имя бота
${bot.username} username бота
${chat...}
Пример объекта ${chat}

"chat": {
  "first_name": "EnotPro",
  "id": 1744260812,
  "last_name": "Support",
  "type": "private",
  "username": "EnotProSupport"
},
Переменная Описание
${chat.id} ID чата где произошло событие
${chat.type} тип чата где произошло событие
${chat.username} юзернейм чата где произошло событие
${from...}
Пример объекта ${from}

"from": {
  "first_name": "EnotPro",
  "id": 1744260812,
  "is_bot": false,
  "language_code": "ru",
  "last_name": "Support",
  "name": "EnotPro Support",
  "type": "user",
  "username": "EnotProSupport"
},
Переменная Описание
${from.id} ID инициатора
${from.name} Имя инициатора
${from.username} юзернейм пользователя

Опциональные

_Опциональные объекты доступны при выполнении условий (определенные реакции, сущности)

Объект Описание
update Информация в оригинальном виде о событии в Телеграме
handler Информация о сработавшем обработчике
task Информация о сработавшем отложенном действии
form Информация о прогрессе выполнения формы
${update...}
Пример объекта ${update}

"update": {
  "message": {
    "chat": {
      "first_name": "EnotPro",
      "id": 1744260812,
      "last_name": "Support",
      "type": "private",
      "username": "EnotProSupport"
    },
    "date": 1774802922,
    "from": {
      "first_name": "EnotPro",
      "id": 1744260812,
      "is_bot": false,
      "language_code": "ru",
      "last_name": "Support",
      "username": "EnotProSupport"
    },
    "message_id": 5125,
    "text": "текст"
  },
  "update_id": 565657605
},
Переменная Описание
${update.message.chat.id} ID где произошло событие
${update.message.from.name} полное имя инициатора
${update.message.text} текст отправленный пользователем
${form...}
Пример объекта ${form}

"form": {
  "fields": {
    "choose": [
      0: "button1"
    ],
    "info": true,
    "media": [ 1 item ],
    "name": "name"
  },
  "result": {
    "id": "A",
    "is_finish": true,
    "name": "test",
    "time_finish": 1774818144,
    "time_start": 1774818131,
    "user_id": 1744260812
  }
},
Переменная Описание
${form.result.name} название формы
${form.fields.name} введенный ответ в текстовом поле
${form.fields.choose.0} выбранная кнопка в поле "Выбор"
${form.fields.media} отправленный пользователем медиа. можно вывести с помощью макроса media
© 2025 EnotPRO. Все права защищены.