ForgeOpenPlatform
sk

OpenPlatform

Oznámenia a verejné endpointy OpenPlatform

OpenPlatform · openplatform@5 openplatformnotificationsapitms

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:

PoleVýznam
bodytext oznámenia
pathcesta v aplikácii, ktorú oznámenie otvorí
icon, colorvoliteľ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:

  1. uloží oznámenie (tabuľka tbl_notification) a zvýši počítadlo neprečítaných používateľa;
  2. aktualizuje relácie tohto používateľa otvorené v portáli, takže počítadlo sa objaví okamžite;
  3. publikuje Notifications.create cez TMS, keď je zapnuté nastavenie $tms;
  4. 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.