Добрый день, не приходит жирный шрифт в пост телеграм канала от платы ESP8266.
POST запрос, формат multipart/form-data (там ещё файл передаётся),
используемый код здесь
void setup() {
Serial.begin(115200);
// подключение к WIFI
// инициализация SD карты
sendPhoto("example.jpg", "просто текст\n<b>жирный текст</b>");
}
void sendPhoto(const char* filePath, const String& caption) {
WiFiClientSecure client;
client.setInsecure();
if (!client.connect("api.telegram.org", 443)) {
Serial.println("Connection failed");
return;
}
String boundary = "----ESP8266Boundary";
// Подготовка POST-запроса
String postData = "--" + boundary + "\r\n";
postData += "Content-Disposition: form-data; name=\"chat_id\"\r\n\r\n";
postData += String(telegramChatId) + "\r\n";
postData += "--" + boundary + "\r\n";
postData += "Content-Disposition: form-data; name=\"caption\"\r\n\r\n";
postData += caption + "\r\n"; // Используем HTML
postData += "--" + boundary + "\r\n";
postData += "Content-Disposition: form-data; name=\"photo\"; filename=\"" + String(filePath) + "\"\r\n";
postData += "Content-Type: image/jpeg\r\n\r\n";
File imageFile = SD.open(filePath, FILE_READ);
if (!imageFile) {
Serial.println("File not found");
return;
}
long contentLength = postData.length() + imageFile.size() + String("\r\n--" + boundary + "--\r\n").length();
client.print("POST /bot" + String(telegramBotToken) + "/send-message.html HTTP/1.1\r\n");
client.print("Host: api.telegram.org\r\n");
client.print("Content-Type: multipart/form-data; boundary=" + boundary + "\r\n");
client.print("Content-Length: " + String(contentLength) + "\r\n");
// parse mode HTML, Markdown тоже не работает
client.print("parse_mode: HTML\r\n");
client.print("\r\n");
// Отправка начальных частей POST-запроса
client.print(postData);
// Отправляем файл по частям
const int bufferSize = 512;
uint8_t buffer[bufferSize];
while (imageFile.available()) {
int bytesRead = imageFile.read(buffer, bufferSize);
client.write(buffer, bytesRead);
}
imageFile.close();
// Завершение POST-запроса
client.print("\r\n--" + boundary + "--\r\n");
// Чтение ответа от сервера
String responseLine = client.readStringUntil('\n'); // Первое сообщение
Serial.println("Server response: " + responseLine); // Серверный ответ
client.stop(); // Завершаем соединение
} // loop пустой
В сообщении приходит картинка example.jpg и текст:
просто текст
<b>жирный текст</b>
При использовании Markdown тоже приходит текст с разметкой.
Подскажите, пожалуйста, что у меня в коде не так?