ForgeOpenPlatform
cs

OpenPlatform

Oznámení a veřejné endpointy OpenPlatform

OpenPlatform · openplatform@5 openplatformnotificationsapitms

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:

PoleVýznam
bodytext oznámení
pathcesta uvnitř aplikace, kterou oznámení otevře
icon, colorvolitelné: 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:

  1. uloží oznámení (tabulka tbl_notification) a zvýší počítadlo nepřečtených uživatele;
  2. aktualizuje relace tohoto uživatele otevřené v portálu, takže se počítadlo objeví okamžitě;
  3. publikuje Notifications.create přes TMS, když je zapnuté nastavení $tms;
  4. 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.