GyverLibs / FastBot2

Очень быстрая и лёгкая библиотека Telegram бота для Arduino, ESP8266, ESP32
MIT License
43 stars 4 forks source link

Ошибка парсинга HTML Message #15

Closed LittleBuster closed 2 months ago

LittleBuster commented 2 months ago

На данный момент не получается отправить HTML сообщение в боте, при парсинге возникает ошибка

    fb::Message resp;

    resp.chatID = user->chatId;
    resp.mode = fb::Message::Mode::HTML;
    resp.text = F("<h1>Полив</h1>");

    auto res = sendMessage(resp);
    Serial.println(res.getRaw().toString());

После отправки в core.h вызывается обработчик, вычитывающий сообщения с сервера

Result _parseResponse(ghttp::Client::Response resp)
FB_ESP_YIELD();
        if (resp) { 
            if (resp.type() == F("application/json")) {
                FB_LOG("got json");
                Result res(resp.body());
                res.parseJson(); <----- Здесь возвращается False, но никак не обрабатывается

Далее по коду мы не попадаем из-за этой ошибки в условие

if (res) {
}

И в ответ мы получаем просто пустую строку без какого-либо jsona

auto res = sendMessage(resp);
Serial.println(res.getRaw().toString());

В файле result.h в обработчике parseJson класса Result мы вылетаем с ошибкой на этой строке

if (!_parser[tg_apih::ok].toBool()) return 0;

Видимо предыдущая функция _parser.parse неправильно распарсила json с HTML строкой

GyverLibs commented 2 months ago

Телеграм не поддерживает тег h1 - документация. Неподдерживаемые теги приводят к глобальной ошибке и сервер возвращает ошибку, она не проходит в обработчик