- Добавлена полная интеграция с 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 интеграции
2.7 KiB
2.7 KiB
Настройка 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