Google FCM HTTP v1 dla Delphi

· Komponenty

Od sgcWebSockets 2024.9.0 dostępny jest nowy komponent klienta do wysyłania powiadomień przy użyciu Google Firebase Cloud Messaging i najnowszego API HTTP v1.

Aplikacje korzystające ze starszych (przestarzałych) interfejsów API FCM dla HTTP i XMPP powinny jak najszybciej przejść na API HTTP v1. Wysyłanie wiadomości (w tym wiadomości upstream) za pomocą tych interfejsów zostało uznane za przestarzałe 20 czerwca 2023 r., a wyłączenie rozpoczęło się 22 lipca 2024 r.

Poza bieżącym wsparciem i nowymi funkcjami, API HTTP v1 oferuje następujące zalety w porównaniu ze starszymi interfejsami:

- Lepsza ochrona dzięki tokenem dostępu — API HTTP v1 używa krótkotrwałych tokenów dostępu zgodnie z modelem bezpieczeństwa OAuth2. Nawet jeśli token dostępu wycieknie, może być użyty złośliwie tylko przez około godzinę przed wygaśnięciem. Tokeny odświeżania są przesyłane rzadziej niż klucze bezpieczeństwa w starszym API, co zmniejsza ryzyko ich przechwycenia.

- Wydajniejsza personalizacja wiadomości na różnych platformach — API HTTP v1 posiada klucze wspólne dla wszystkich docelowych instancji oraz klucze specyficzne dla platform, umożliwiające dostosowanie wiadomości. Pozwala to tworzyć "nadpisania" wysyłające nieco inne ładunki do różnych platform klienckich w ramach jednej wiadomości.

- Większa rozszerzalność i gotowość na przyszłe wersje platform klienckich — API HTTP v1 w pełni obsługuje opcje przesyłania wiadomości dostępne na platformach Apple, Android i Web. Ponieważ każda platforma ma własny blok w ładunku JSON, FCM może rozszerzać API o nowe wersje i platformy wedle potrzeb.

Google FCM Delphi Client

Firebase Cloud Messaging (FCM) to wieloplatformowe rozwiązanie do przesyłania wiadomości, umożliwiające niezawodne wysyłanie wiadomości bez kosztów.

Za pomocą FCM możesz powiadamiać aplikację klienta o dostępności nowych wiadomości e-mail lub innych danych do synchronizacji. Możesz wysyłać wiadomości powiadomień, aby ponownie angażować użytkowników i zwiększać retencję. W przypadkach takich jak komunikatory, wiadomość może przesłać ładunek do 4096 bajtów do aplikacji klienckiej.

Komponent obsługuje API HTTP v1.

Autoryzacja

Komponent klienta Google FCM może logować się na serwery Google następującymi metodami:

OAuth2

Logowanie odbywa się przez przeglądarkę internetową, w której użytkownik loguje się na swoje konto i autoryzuje żądania FCM.


Konta usług

Logowanie odbywa się przez podpisywanie żądań kluczem prywatnym dostarczonym przez Google. Ta metoda jest zalecana dla zautomatyzowanych usług lub aplikacji bez interakcji użytkownika.

Po utworzeniu nowego konta usług możesz pobrać plik JSON ze wszystkimi konfiguracjami. Plik ten może być przetworzony przez komponent FCM — wystarczy wywołać metodę LoadSettingsFromFile i przekazać nazwę pliku JSON jako argument.

Sample

Poniżej znajdziesz prosty przykład wysyłania powiadomień przy użyciu FCM z JWT jako metodą uwierzytelniania.

oFCM := TsgcHTTPGoogleCloud_FCM_Client.Create(nil);
oFCM.GoogleCloudOptions.Authorization := gcaJWT;
oFCM.LoadSettingsFromFile('sgcfirebase-7x92e-5c80b8506a6c.json');
oFCM.GoogleCloudOptions.JWT.Subject := GoogleFCM.GoogleCloudOptions.JWT.ClientEmail;
ShowMessage(
  oFCM.SendMessage('Project-id', 
  '{"message": {"topic": "news","notification": ' +
  '{"title": "Breaking News",' + 
  '"body": "New news story available."},"data": {"story_id": "story_12345"}}}')
);