Files
aiform_prod/docs/N8N_BROWSERLESS_HTTP_REQUEST_SETUP.md
AI Assistant 2e45786e46 feat: Telegram Mini App integration and UX improvements
- Добавлена полная интеграция с Telegram Mini App (динамическая загрузка SDK)
- Отдельный компактный дизайн для Telegram Mini App
- Добавлен loader при инициализации (предотвращает мелькание SMS-авторизации)
- Улучшена навигация: кнопки "Назад" и "К списку заявок" теперь сохраняют авторизацию
- Telegram Mini App: кнопка "Выход" просто закрывает приложение
- Telegram Mini App: заявки "В работе" скрыты из списка
- Веб-версия: для заявок "В работе" добавлена кнопка "Просмотреть в Telegram" (ссылка на @klientprav_bot)
- Telegram Mini App: кнопки действий в черновиках расположены вертикально
- Веб-версия: убрано отображение номера телефона в приветствии
- Исправлена проблема с возвратом к списку черновиков (не требует повторной SMS-авторизации)
- Заблокировано удаление и редактирование заявок со статусом "В работе"
- Добавлена документация по Telegram Mini App интеграции
2026-01-29 16:12:48 +03:00

2.7 KiB
Raw Permalink Blame History

Настройка HTTP Request ноды для Browserless

Готовый запрос для вставки

Вариант 1: С использованием html_base64 из предыдущей ноды

Method: POST

URL: http://147.45.146.17:3000/pdf

Headers:

{
  "Content-Type": "application/json",
  "Authorization": "Bearer YOUR_TOKEN"
}

Примечание: Если токен не требуется, уберите строку Authorization

Body (JSON):

{
  "url": "data:text/html;base64,{{ $json.html_base64 }}",
  "options": {
    "format": "A4",
    "printBackground": true,
    "margin": {
      "top": "20mm",
      "right": "15mm",
      "bottom": "20mm",
      "left": "15mm"
    }
  }
}

Response Format: Binary


Вариант 2: Если у вас HTML в строке (не base64)

Method: POST

URL: http://147.45.146.17:3000/pdf

Headers:

{
  "Content-Type": "application/json",
  "Authorization": "Bearer YOUR_TOKEN"
}

Body (JSON):

{
  "html": "{{ $json.html }}",
  "options": {
    "format": "A4",
    "printBackground": true,
    "margin": {
      "top": "20mm",
      "right": "15mm",
      "bottom": "20mm",
      "left": "15mm"
    }
  }
}

Response Format: Binary


Полный workflow

[Code: Process Flights Data]  ← Генерирует HTML
    ↓
[Code: HTML to Base64]  ← Конвертирует HTML в base64 (если нужно)
    ↓
[HTTP Request: Browserless PDF]  ← Используйте настройки выше
    ↓
[Code: Extract Base64 PDF]  ← Конвертирует binary в base64

Code Node: HTML to Base64 (если нужно)

Если у вас HTML в строке, а нужен base64 для data URL:

const html = $json.html;
const htmlBase64 = Buffer.from(html, 'utf8').toString('base64');

return [{
  json: {
    html_base64: htmlBase64,
    html: html
  }
}];

Code Node: Extract Base64 PDF (после HTTP Request)

const pdfBinary = $binary.data;
const base64 = Buffer.isBuffer(pdfBinary) 
  ? pdfBinary.toString('base64') 
  : Buffer.from(pdfBinary).toString('base64');

const sizeBytes = Buffer.from(base64, 'base64').length;

return [{
  json: {
    pdf_base64: base64,
    pdf_size_bytes: sizeBytes,
    pdf_size_mb: (sizeBytes / (1024 * 1024)).toFixed(2),
    success: true
  }
}];

Отладка

Если получаете ошибку:

  • "Bad or missing authentication" → Проверьте токен или уберите Authorization header
  • "Not Found" → Проверьте URL эндпоинта
  • Пустой ответ → Проверьте формат HTML и data URL