Přeskočit obsah

API a integrace

Rozhraní ws.skautis.cz je primární branou. Na rozdíl od moderních REST API (JSON, HTTP metody) skautIS používá SOAP (WSDL 1.1). SOAP je silně typový a kontraktově orientovaný – díky WSDL má vývojář jistotu struktury požadavku a odpovědi, což je důležité pro data s osobními údaji a financemi. API je rozděleno do logických služeb (např. UserManagement, OrganizationUnit, Events), každá vystavuje metody (např. UnitInsert, PersonDetail).


Autentizace

Aplikace přesměruje uživatele na přihlašovací stránku skautIS → po úspěchu je vrácen LoginToken (GUID) → token musí být v hlavičce každého SOAP požadavku.

Keep-Alive: Platnost tokenu vyprší po určité době neaktivity (řádově desítky minut); aplikace buď pravidelně volá „ping“, nebo reaguje na výjimku LoginExpired a znovu přihlásí uživatele.


Klientské knihovny

  • skautis-php (GitHub: skaut/Skautis) – nejpoužívanější, využívá magické metody PHP (__call) pro dynamické volání SOAP metod, správce WSDL (WsdlManager) cachuje WSDL pro zrychlení, automaticky předává LoginToken.
  • skautis-py – Python implementace pro analýzy a skriptování, včetně integrace do Jupyter Notebooků pro práci s Otevřenými daty.

Finance a platby

Členské příspěvky se typicky vybírají hotově nebo na bankovní účet jednotky během podzimu. Středisko pak hromadně odvádí část příspěvku nadřízeným jednotkám (okres, kraj, ústředí). SkautIS eviduje, kdo zaplatil, ale nenutí k jedné formě platby.

Táborové poplatky: Satelitní aplikace h.skauting umožňuje propojení s bankovním účtem a párování plateb účastníků. Pro velké akce se využívá systém SRS/KISSJ, který vystavuje platební podklady. Přímá integrace skautISu na platební brány (GoPay, ComGate) pro běžné příspěvky v jádru systému není veřejně dokumentována jako standard.


WordPress plugin (skautis-integration)

  • Hook do autentizace WP: Místo ověření hesla v DB WordPressu se odešle požadavek na skautIS.
  • Mapování rolí (Mapping Rules): např. „má-li uživatel ve skautIS roli Vůdce oddílu v jednotce X → přiřaď mu ve WordPressu roli Editor“.
  • Shortcodes API: shortcode [skautis] s atributy (např. rules="...ID_role...") – při renderování se zkontroluje přihlášení a splnění podmínek; pokud ne, obsah se nevykreslí. Umožňuje sekce „jen pro členy“ bez duplicitní správy uživatelů.