Oznámenia a verejné endpointy OpenPlatform
Okrem spustenia a overenia má OpenPlatform niekoľko endpointov pre aplikácie a iné systémy. Sú v controllers/verify.js, controllers/api.js a controllers/socket.js.
Odoslanie oznámenia
Odpoveď overenia obsahuje notify, adresu tvaru <platform url>/notify/?token=<checksum of user and application>, keď používateľ prijíma oznámenia. Aplikácia na ňu pošle POST s hlavičkou x-token a telom JSON:
| Pole | Význam |
|---|---|
body | text oznámenia |
path | cesta v aplikácii, ktorú oznámenie otvorí |
icon, color | voliteľné: nahradia ikonu a farbu aplikácie |
Hodnota x-token je token oznámenia, ktorý OpenPlatform odvodí pre daného používateľa a aplikáciu: MD5 adresy oznámenia so soľou reqtoken aplikácie a MD5 tohto výsledku so soľou jej restoken (FUNC.makenotify v definitions/func.js). Obe tajomstvá sú tie isté, ktoré aplikácia zdieľa pre spustenie (registrácia aplikácie).
OpenPlatform odpovie Invalid token, keď sa kontrolný súčet alebo hlavička nezhodujú, a Not allowed notifications, keď ich používateľ alebo aplikácia neprijíma. Kontroluje aj povolené adresy aplikácie a že používateľ je potvrdený, povolený a aktívny. Keď je všetko v poriadku:
- uloží oznámenie (tabuľka
tbl_notification) a zvýši počítadlo neprečítaných používateľa; - aktualizuje relácie tohto používateľa otvorené v portáli, takže počítadlo sa objaví okamžite;
- publikuje
Notifications.createcez TMS, keď je zapnuté nastavenie$tms; - vráti identifikátor oznámenia.
Pre používateľov, ktorí sú offline a majú neprečítané oznámenia, servisná úloha pošle e-mailový súhrn ("Unread notifications"), keď je nastavená pošta, najviac raz za tri dni na používateľa (definitions/init.js).
API používateľov (token)
GET /users/ vráti skupiny a používateľov platformy ako JSON. Je vypnuté, kým nie sú nastavené allow_token a token. Volajúci pošle token ako parameter dotazu token alebo ako hlavičku x-token; opakované nesprávne pokusy sa blokujú. Používatelia prichádzajú bez tajomstiev: identifikátor, referencia, jazyk, pohlavie, fotografia (absolútna adresa), meno, e-mail, farba, preferencie, príznaky (sa, isdisabled, isinactive, isonline), dátumy a id ich skupín.
Nahratie obrázka
POST /upload/base64/ (do 2 MB) prijíma telo JSON s názvom súboru a file ako data URI, a iba JPEG. Vyžaduje prihláseného používateľa alebo token dotazu z nastavenia servicetoken (odkiaľ ten kľúč pochádza, pozri nastavenia a databáza). Obrázok sa uloží do úložiska súborov files a odpoveďou je jeho adresa, /files/<id and checksum>.jpg; adresa funguje iba s kontrolným súčtom.
Viac inštancií: synchronizačný socket
SOCKET /sync/ spája inštancie OpenPlatform. Klient sa prijme, keď je zapnuté nastavenie sync a token v dotaze sa rovná sync_token; každý iný klient sa pol sekundy po otvorení zatvorí s kódom 4001. Správy potvrdeného klienta sa prenášajú ostatným a kým sa potvrdený klient znovu pripája, správy sa zaraďujú do fronty až na desať sekúnd.