n8n-nodes-librus-2
v2.2.3
Published
Librus Synergia nodes for n8n (portal OAuth2 + REST API + BFF)
Maintainers
Readme
n8n-nodes-librus-2
Community node dla n8n umożliwiający automatyczne pobieranie danych z Librus Synergia — najpopularniejszego dziennika elektronicznego w polskich szkołach.
Pakiet łączy się z oficjalnym REST API Librusa przez autoryzację portalową OAuth2 — tak samo jak oficjalna aplikacja mobilna. Od wersji 2.2.0 obsługuje również BFF API (Backend For Frontend) — nowszy backend aplikacji mobilnej, który zwraca bogatsze dane z rozwiązanymi relacjami.
⚠️ BFF API (
testbff.librus.pl) może być niedostępne. Serwer BFF jest utrzymywany przez Librus i bywa offline lub nieosiągalny. Jeśli operacja BFF zwraca błąd 502/503, przełącz API Source naClassic (Synergia API)— wszystkie podstawowe operacje (wiadomości, oceny, plan lekcji itp.) działają przez stabilne REST APIapi.librus.pl.
Co potrafi ten node?
9 zasobów, 34 operacje — pełna rozpiska poniżej.
| Zasób | Dostępne operacje | BFF | |-------|-------------------|:---:| | 📨 Wiadomości | Lista odebranych · Lista wysłanych · Pobierz wiadomość · Wyślij wiadomość · Usuń wiadomość · Nieprzeczytane | ✅ list | | 📊 Oceny | Lista ocen · Pobierz ocenę · Kategorie ocen · Komentarze · Oceny punktowe · Kategorie ocen punktowych | ✅ list | | 📅 Plan lekcji | Plan na wybrany tydzień (classic) / zakres dat (BFF) | ✅ | | ✅ Frekwencja | Lista obecności (z filtrami dat) · Pobierz obecność · Typy obecności | — | | 📝 Zadania domowe | Lista zadań · Pobierz zadanie · Kategorie zadań | — | | 🏫 Szkoła | Ogłoszenia · Dni wolne szkoły · Pobierz dzień wolny · Dni wolne klasy · Dni wolne nauczycieli · Kalendarz · Przedmioty · Nauczyciele · Lekcje · Wywiadówki · Zachowanie · Kolory | ✅ kalendarz | | ℹ️ Informacje | Dane konta · Dane klasy · Szczęśliwy numerek | — | | 🕐 Timeline (BFF) | Feed zdarzeń z aplikacji mobilnej (artykuły, zmiany, powiadomienia) | ✅ | | 📌 Custom Events (BFF) | Lista własnych wydarzeń z zakresu dat | ✅ |
Instalacja
n8n self-hosted
cd ~/.n8n
npm install n8n-nodes-librus-2Zrestartuj n8n — node Librus pojawi się w liście node'ów.
n8n w Dockerze
Ustaw zmienną środowiskową i zrestartuj kontener:
environment:
- N8N_COMMUNITY_PACKAGES=n8n-nodes-librus-2Konfiguracja credentials
- W n8n przejdź do Credentials → Add Credential → Librus Portal API
- Wypełnij:
| Pole | Wymagane | Opis | |------|:--------:|------| | Email | ✅ | E-mail konta na portal.librus.pl | | Password | ✅ | Hasło do konta portalu Librus | | Refresh Token | — | Opcjonalne. Pozwala pominąć pełne logowanie przy kolejnych uruchomieniach. |
⚠️ Hasło portalu ≠ hasło Synergii! Podaj hasło, którym logujesz się na portal.librus.pl — nie hasło do dziennika Synergia. Jeśli logujesz się przez Google lub Facebook, najpierw ustaw hasło portalu w ustawieniach konta.
Przykłady użycia
Pobierz wiadomości z dziennika
| Parametr | Wartość |
|----------|---------|
| Resource | Messages |
| Operation | List Messages |
| Page | 1 |
| Limit | 20 |
Pobierz wszystkie oceny
| Parametr | Wartość | |----------|---------| | Resource | Grades | | Operation | List Grades |
Plan lekcji na ten tydzień
| Parametr | Wartość | |----------|---------| | Resource | Timetable | | Operation | Get Timetable | | Week Start | (puste = bieżący tydzień) |
Szczęśliwy numerek
| Parametr | Wartość | |----------|---------| | Resource | Info | | Operation | Get Lucky Number |
Frekwencja z zakresu dat
| Parametr | Wartość |
|----------|---------|
| Resource | Attendance |
| Operation | List Attendances |
| Date From | 2026-01-01 |
| Date To | 2026-03-31 |
Ogłoszenia szkolne
| Parametr | Wartość | |----------|---------| | Resource | School | | Operation | School Notices |
BFF: Wiadomości z pełnym body (jeden request)
| Parametr | Wartość | |----------|---------| | API Source | BFF (Mobile App API) | | Resource | Messages | | Operation | List Messages |
BFF: Plan lekcji z zakresu dat
| Parametr | Wartość |
|----------|---------|
| API Source | BFF (Mobile App API) |
| Resource | Timetable |
| Operation | Get Timetable |
| Date From | 2026-04-14 |
| Date To | 2026-04-18 |
BFF: Timeline (feed zdarzeń)
| Parametr | Wartość | |----------|---------| | API Source | BFF (Mobile App API) | | Resource | Timeline | | Operation | Get Timeline |
Pełna rozpiska operacji i parametrów
Parametry globalne
| Parametr | Typ | Domyślnie | Opis |
|----------|-----|-----------|------|
| Account Login | string | (puste) | Login konta Synergia (np. 12345u). Puste = pierwsze aktywne konto. Przydatne gdy jedno konto portalu ma wielu uczniów. |
| API Source | options | Classic | Classic (Synergia API) — standardowe REST API. BFF (Mobile App API) — nowszy backend z bogatszymi danymi (nazwy rozwiązane inline, pełne body wiadomości). |
📨 Wiadomości (Messages)
| Operacja | Parametry | Opis |
|----------|-----------|------|
| List Messages | Page (number, domyślnie 1), Limit (number, domyślnie 300), After ID (number, domyślnie 0) | Lista wiadomości odebranych. After ID > 0 zwraca tylko wiadomości z ID wyższym niż podana wartość — przydatne do inkrementalnego pollingu. BFF: zwraca pełne body + imiona nadawców w jednym request (bez Page/Limit/After ID). |
| List Sent | Page (number, domyślnie 1), Limit (number, domyślnie 300), After ID (number, domyślnie 0) | Lista wiadomości wysłanych (tylko Classic) |
| Get Message | Message ID (string, wymagany) | Pobierz pojedynczą wiadomość po ID |
| Send Message | Receiver IDs (string, wymagany), Subject (string, wymagany), Body (string, wymagany) | Wyślij nową wiadomość. Receiver IDs to lista ID użytkowników rozdzielona przecinkami. |
| Delete Message | Message ID (string, wymagany) | Usuń wiadomość po ID |
| Get Unread | — | Liczba nieprzeczytanych wiadomości |
ℹ️ API Librusa nie wspiera filtrowania wiadomości po datach. Filtrowanie trzeba robić w n8n (np. node IF/Filter po polu
SendDate).
📊 Oceny (Grades)
| Operacja | Parametry | Opis |
|----------|-----------|------|
| List Grades | — | Lista wszystkich ocen. BFF: oceny pogrupowane po przedmiotach z period1Grades/period2Grades, nazwami nauczycieli i kategoriami inline. |
| Get Grade | Grade ID (string, wymagany) | Pobierz pojedynczą ocenę po ID |
| List Categories | — | Lista kategorii ocen |
| List Comments | — | Lista komentarzy do ocen |
| Point Grades | — | Lista ocen punktowych |
| Point Grade Categories | — | Lista kategorii ocen punktowych |
📅 Plan lekcji (Timetable)
| Operacja | Parametry | Opis |
|----------|-----------|------|
| Get Timetable | Classic: Week Start (string, opcjonalny). BFF: Date From (dateTime, wymagany), Date To (dateTime, wymagany) | Classic: plan na tydzień (YYYY-MM-DD, puste = bieżący). BFF: płaska lista lekcji z zakresu dat z nazwami przedmiotów i nauczycieli inline. |
✅ Frekwencja (Attendance)
| Operacja | Parametry | Opis |
|----------|-----------|------|
| List Attendances | Date From (dateTime, opcjonalny), Date To (dateTime, opcjonalny) | Lista obecności. Daty opcjonalne — puste = wszystkie. |
| Get Attendance | Attendance ID (string, wymagany) | Pobierz pojedynczy wpis obecności po ID |
| List Types | — | Lista typów obecności (obecny, nieobecny, spóźniony itp.) |
📝 Zadania domowe (Homework)
| Operacja | Parametry | Opis |
|----------|-----------|------|
| List Homework | — | Lista wszystkich zadań domowych |
| Get Homework | Homework ID (string, wymagany) | Pobierz pojedyncze zadanie po ID |
| List Categories | — | Lista kategorii zadań domowych |
🏫 Szkoła (School)
| Operacja | Parametry | Opis |
|----------|-----------|------|
| School Notices | — | Lista ogłoszeń szkolnych |
| School Free Days | — | Lista dni wolnych szkoły |
| Get School Free Day | Free Day ID (string, wymagany) | Pobierz dzień wolny po ID |
| Class Free Days | — | Lista dni wolnych klasy |
| Teacher Free Days | — | Lista dni wolnych nauczycieli |
| Calendar | Classic: brak parametrów. BFF: Date From (dateTime, wymagany), Date To (dateTime, wymagany) | Classic: przegląd kalendarza. BFF: schoolFreeDays + teacherFreeDays w jednym response z filtrem miesięcy. |
| Subjects | — | Lista wszystkich przedmiotów |
| Teachers (Users) | — | Lista użytkowników (nauczyciele, rodzice) |
| Lessons | — | Lista definicji lekcji |
| Parent-Teacher Conferences | — | Lista zaplanowanych wywiadówek |
| Behaviour Grades | — | Lista punktów z zachowania |
| Colors | — | Lista definicji kolorów używanych w systemie |
ℹ️ Informacje (Info)
| Operacja | Parametry | Opis | |----------|-----------|------| | Get Account Info | — | Dane zalogowanego konta | | Get Classes | — | Dane klasy ucznia | | Get Lucky Number | — | Dzisiejszy szczęśliwy numerek |
🕐 Timeline (BFF only)
| Operacja | Parametry | Opis |
|----------|-----------|------|
| Get Timeline | — | Feed zdarzeń z aplikacji mobilnej — artykuły, zmiany ocen, nowe wiadomości itp. Wymaga API Source = BFF. Używa metody HTTP QUERY. |
📌 Custom Events (BFF only)
| Operacja | Parametry | Opis |
|----------|-----------|------|
| List Custom Events | Date From (dateTime, wymagany), Date To (dateTime, wymagany) | Lista własnych wydarzeń użytkownika z podanego zakresu dat. Wymaga API Source = BFF. |
Wymagania
- n8n ≥ 1.0
- Node.js ≥ 18
- Aktywne konto na portal.librus.pl z dostępem do Synergii
Dlaczego ten pakiet?
Istniejący pakiet n8n-nodes-librus-synergia przestał działać — opierał się na scrapingu HTML i nieaktualnym kluczu OAuth. Ten pakiet rozwiązuje problem od podstaw:
| | n8n-nodes-librus-synergia | n8n-nodes-librus-2 |
|-|:---------------------------:|:--------------------:|
| Autoryzacja | HTML scraping | Portal OAuth2 |
| Pobieranie danych | Web scraping | REST API + BFF API |
| Wiadomości | ❌ nie działa | ✅ (z pełnym body w BFF) |
| Odporność na zmiany UI | ❌ | ✅ |
| Odświeżanie sesji | ❌ | ✅ automatyczne |
| Oceny z nazwami przedmiotów | ❌ | ✅ (BFF) |
| Plan lekcji z zakresem dat | ❌ | ✅ (BFF) |
Licencja
Autor
Pochodzenie
Ten pakiet jest forkiem (przepisanym od zera) pakietu n8n-nodes-librus-synergia. Oryginalny pakiet przestał działać z powodu zmian w API Librusa — ta wersja zastępuje HTML scraping nowym podejściem opartym o portal OAuth2 i oficjalne REST API.
