Oznámení a veřejné endpointy OpenPlatform
Kromě spuštění a ověření má OpenPlatform několik endpointů pro aplikace a další systémy. Jsou v controllers/verify.js, controllers/api.js a controllers/socket.js.
Odeslání oznámení
Odpověď ověření obsahuje notify, adresu ve tvaru <platform url>/notify/?token=<checksum of user and application>, když uživatel přijímá oznámení. Aplikace na ni pošle POST s hlavičkou x-token a tělem JSON:
| Pole | Význam |
|---|---|
body | text oznámení |
path | cesta uvnitř aplikace, kterou oznámení otevře |
icon, color | volitelné: nahradí ikonu a barvu aplikace |
Hodnota x-token je token oznámení, který OpenPlatform odvodí pro daného uživatele a aplikaci: MD5 adresy oznámení se solí reqtoken aplikace a MD5 tohoto výsledku se solí jejího restoken (FUNC.makenotify v definitions/func.js). Obě tajemství jsou stejná, která aplikace sdílí pro spuštění (registrace aplikace).
OpenPlatform odpoví Invalid token, když se kontrolní součet nebo hlavička neshodují, a Not allowed notifications, když je uživatel nebo aplikace nepřijímá. Kontroluje také povolené adresy aplikace a že uživatel je potvrzený, povolený a aktivní. Když je vše v pořádku:
- uloží oznámení (tabulka
tbl_notification) a zvýší počítadlo nepřečtených uživatele; - aktualizuje relace tohoto uživatele otevřené v portálu, takže se počítadlo objeví okamžitě;
- publikuje
Notifications.createpřes TMS, když je zapnuté nastavení$tms; - vrátí identifikátor oznámení.
Pro uživatele, kteří jsou offline a mají nepřečtená oznámení, servisní úloha pošle e-mailový souhrn ("Unread notifications"), když je nastavena pošta, nejvýše jednou za tři dny na uživatele (definitions/init.js).
API uživatelů (token)
GET /users/ vrací skupiny a uživatele platformy jako JSON. Je vypnuté, dokud nejsou nastaveny allow_token a token. Volající pošle token jako parametr dotazu token nebo jako hlavičku x-token; opakované špatné pokusy se blokují. Uživatelé přicházejí bez tajemství: identifikátor, reference, jazyk, pohlaví, fotografie (absolutní adresa), jméno, e-mail, barva, předvolby, příznaky (sa, isdisabled, isinactive, isonline), data a id jejich skupin.
Nahrání obrázku
POST /upload/base64/ (do 2 MB) přijímá tělo JSON s názvem souboru a file jako data URI, a pouze JPEG. Vyžaduje přihlášeného uživatele nebo token dotazu z nastavení servicetoken (odkud ten klíč pochází, viz nastavení a databáze). Obrázek se uloží do úložiště souborů files a odpovědí je jeho adresa, /files/<id and checksum>.jpg; adresa funguje jen s kontrolním součtem.
Více instancí: synchronizační socket
SOCKET /sync/ spojuje instance OpenPlatform. Klient se přijme, když je zapnuté nastavení sync a token v dotazu se rovná sync_token; každý jiný klient se půl sekundy po otevření zavře s kódem 4001. Zprávy potvrzeného klienta se přenášejí ostatním a zatímco se potvrzený klient znovu připojuje, zprávy se řadí do fronty až na deset sekund.