Files
aiform_prod/docs/N8N_FLIGHTS_PDF_BASE64_COMPLETE.js

73 lines
3.0 KiB
JavaScript
Raw Permalink Normal View History

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
// ============================================================================
// n8n Code Node: Полный цикл - HTML → Base64 PDF (всё в одном)
// ============================================================================
// Этот код делает всё: получает HTML, отправляет на конвертацию, получает base64
// Требует настройки HTTP Request ноды или внешнего сервиса
// ============================================================================
// Получаем HTML из предыдущей ноды "Code: Process Flights Data"
const processedData = $('Code: Process Flights Data').first().json;
if (!processedData || !processedData.html) {
throw new Error('HTML не получен из предыдущей ноды');
}
const html = processedData.html;
// ==== НАСТРОЙКИ ====
// Замените на ваши параметры
const PDF_SERVICE_URL = 'https://api.htmlpdfapi.com/v1/pdf'; // Или другой сервис
const PDF_API_KEY = 'YOUR_API_KEY'; // Замените на ваш ключ
// ==== ПОДГОТОВКА ЗАПРОСА ДЛЯ HTTP REQUEST ====
// Этот код подготавливает данные для HTTP Request ноды
// После этого Code Node добавьте HTTP Request ноду и используйте эти данные
return [{
json: {
// Данные для HTTP Request ноды
http_method: 'POST',
http_url: PDF_SERVICE_URL,
http_headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${PDF_API_KEY}`
},
http_body: JSON.stringify({
html: html,
options: {
format: 'A4',
printBackground: true,
margin: {
top: '20mm',
right: '15mm',
bottom: '20mm',
left: '15mm'
}
},
base64: true // Запрашиваем base64 напрямую
}),
// Метаданные
html_length: html.length,
flights_count: processedData.flights_count,
generated_at: processedData.generated_at,
// Инструкция для следующей ноды
next_step: 'HTTP Request → Code: Extract Base64 PDF'
}
}];
// ============================================================================
// ИНСТРУКЦИЯ ПО ИСПОЛЬЗОВАНИЮ:
// ============================================================================
// 1. Этот Code Node подготавливает запрос
// 2. Добавьте HTTP Request ноду после этого Code Node
// 3. В HTTP Request ноде используйте:
// - Method: {{ $json.http_method }}
// - URL: {{ $json.http_url }}
// - Headers: {{ $json.http_headers }}
// - Body: {{ $json.http_body }}
// 4. После HTTP Request добавьте Code Node с кодом из N8N_FLIGHTS_PDF_BASE64_FULL.js
// для извлечения base64 из ответа
// ============================================================================