ForgeOpenPlatform
pl

OpenPlatform

Powiadomienia i publiczne endpointy OpenPlatform

OpenPlatform · openplatform@5 openplatformnotificationsapitms

Poza uruchomieniem i weryfikacją OpenPlatform ma kilka endpointów dla aplikacji i innych systemów. Znajdują się w controllers/verify.js, controllers/api.js i controllers/socket.js.

Wysyłanie powiadomienia

Odpowiedź weryfikacji zawiera notify, adres w postaci <platform url>/notify/?token=<checksum of user and application>, gdy użytkownik akceptuje powiadomienia. Aplikacja wysyła na niego POST z nagłówkiem x-token i treścią JSON:

PoleZnaczenie
bodytekst powiadomienia
pathścieżka wewnątrz aplikacji, którą otwiera powiadomienie
icon, coloropcjonalne: zastępują ikonę i kolor aplikacji

Wartością x-token jest token powiadomienia, który OpenPlatform wyprowadza dla danego użytkownika i aplikacji: MD5 adresu powiadomienia z solą reqtoken aplikacji oraz MD5 tego wyniku z solą jej restoken (FUNC.makenotify w definitions/func.js). Oba sekrety są tymi samymi, które aplikacja dzieli na potrzeby uruchomienia (rejestracja aplikacji).

OpenPlatform odpowiada Invalid token, gdy suma kontrolna lub nagłówek się nie zgadzają, oraz Not allowed notifications, gdy użytkownik lub aplikacja ich nie akceptuje. Sprawdza też dozwolone adresy aplikacji oraz to, że użytkownik jest potwierdzony, włączony i aktywny. Gdy wszystko jest w porządku:

  1. zapisuje powiadomienie (tabela tbl_notification) i zwiększa licznik nieprzeczytanych użytkownika;
  2. aktualizuje sesje tego użytkownika otwarte w portalu, aby licznik pojawił się od razu;
  3. publikuje Notifications.create przez TMS, gdy ustawienie $tms jest włączone;
  4. zwraca identyfikator powiadomienia.

Dla użytkowników, którzy są offline i mają nieprzeczytane powiadomienia, zadanie serwisowe wysyła podsumowanie e-mailem ("Unread notifications"), gdy skonfigurowana jest poczta, najwyżej raz na trzy dni na użytkownika (definitions/init.js).

API użytkowników (token)

GET /users/ zwraca grupy i użytkowników platformy jako JSON. Jest wyłączone, dopóki nie ustawisz allow_token i token. Wywołujący wysyła token jako parametr zapytania token lub nagłówek x-token; powtarzane błędne próby są blokowane. Użytkownicy przychodzą bez sekretów: identyfikator, odniesienie, język, płeć, zdjęcie (adres bezwzględny), imię i nazwisko, e-mail, kolor, preferencje, flagi (sa, isdisabled, isinactive, isonline), daty i identyfikatory ich grup.

Wysyłanie obrazu

POST /upload/base64/ (do 2 MB) przyjmuje treść JSON z nazwą pliku i file jako data URI oraz tylko JPEG. Wymaga zalogowanego użytkownika lub tokenu zapytania z ustawienia servicetoken (skąd pochodzi ten klucz, zobacz ustawienia i baza danych). Obraz jest zapisywany w magazynie plików files, a odpowiedzią jest jego adres, /files/<id and checksum>.jpg; adres działa tylko z sumą kontrolną.

Wiele instancji: gniazdo synchronizacji

SOCKET /sync/ łączy instancje OpenPlatform. Klient jest akceptowany, gdy ustawienie sync jest włączone, a token w zapytaniu jest równy sync_token; każdy inny klient jest zamykany z kodem 4001 pół sekundy po otwarciu. Wiadomości potwierdzonego klienta są przekazywane pozostałym, a gdy potwierdzony klient łączy się ponownie, wiadomości są kolejkowane do dziesięciu sekund.