Integracja z Firebase Cloud Messaging (FCM) umożliwia wysyłanie wiadomości push na urządzenia z systemem Android. Aby ją przeprowadzić, należy zaimplementować klucz serwera FCM oraz plik .json w narzędziu konfiguracyjnym FAMOC. Do poprawnego ukończenia będzie potrzebny dotychczasowy Google Cloud Messaging GDC project number (zapisz go gdzieś pod ręką) który można znaleźć w dotychczasowych ustawieniach narzędzia “famoc-config” pod pozycją System configuration > Other push services.



UWAGA: Przed przystąpieniem do konfiguracji FCM dla serwera FAMOC konieczne jest dodanie następującej reguły wychodzącej dla protokołu TCP z serwera FAMOC do Internetu https://fcm.googleapis.com/fcm/send dla portu 443.


Zaloguj się do konsoli Firebase: https://console.firebase.google.com/ przy użyciu tych samych danych, które użyto przy konfiguracji GCM. Następnie wybierz Dodaj Projekt.



Wybierz dotychczasowy projekt GCM z listy rozwijanej. Jeśli chcesz zmienić dane lokalizacji kliknij przycisk (Aby dowiedzieć się więcej o ustawieniach lokalizacji projektu przejdź do strony wsparcia FCM: https://firebase.google.com/support/guides/locations).


UWAGA: Możesz zmienić domyślne ustawienia udostępniania danych Google Analytics. Po odznaczeniu tego pola wyboru, w miejscu przycisku Utwórz projekt pojawi się przycisk Kontynuuj. Jeśli go klikniesz, pojawi się dodatkowy krok umożliwiający dostosowanie udostępniania danych.


Aby zakończyć proces kliknij “Dodaj Firebase”.



Po chwili może pojawić się okno potwierdzenia. Aby kontynuować kliknij Dalej.



Aby zintegrować FAMOC z usługą FCM kliknij ikonę Androida .



Wprowadź nazwę aplikacji “com.famoc.baseAgent” i kontynuuj wybierając Zarejestruj aplikację. Pozostałe kroki nie są konieczne, zatem możesz zamknąć okno klikając X w lewym górnym rogu, lub kliknąć Dalej, Dalej i pomiń w kolejnym kroku.



Przejdź do Ustawień projektu klikając ikonę kółka zębatego.



W kolejnym oknie wybierz przycisk “Dodaj Aplikację



Z dostępnych opcji wybierz platformę Android.



I powtórz kroki ustawiając zmienną “Nazwę pakietu na Androida” jako “com.fancyfon.baseAgent”.

Po poprawnym dodaniu aplikacji przejdź ponownie do ustawień projektu wybierając ikonę koła zębatego z menu po lewej stronie i “Opcje projektu” po czym wybierz przycisk “google-services.json” i zapisz plik na dysku zapamiętując lokalizację.



Następnie przejdź do zakładki Cloud Messaging i skopiuj Klucz serwera.



Uruchom narzędzie konfiguracyjne FAMOC i przejdź do ustawień Configuration > Firebase push service.



UWAGA: Jeżeli w otwartym widoku pojawia się więcej agentów niż te które zostały dodane należy utworzyć dodatkowe aplikacje w konsoli webowej google i ponownie pobrać plik google-services.json.


Wklej skopiowany wcześniej z ustawień Cloud Messaging na stronie firebase.google.com klucz serwera w polu FCM Server Key. Porównaj czy wspomniany na początku tekstu Google Cloud Messaging GDC project number zgadza się z wartością w polu FMC Sender ID.


Otwórz pobrany plik .json w Notatniku i skopiuj zawartość pliku do schowka. Wklej skopiowany tekst w polu JSON: ________ które pojawi się po wybraniu przycisku Paste JSON file i wybierz przycisk OK.


UWAGA: W niektórych przypadkach występuje problem przy kopiowaniu zawartości pliku JSON na urządzeniach macOS i Linux. Aby go uniknąć należy usunąć z pliku znak końca linii przy pomocy polecenia

cat google-services.json | tr -d '\n'

lub

tr -d '\n' < google-services.json > Downloads/no-n.json



Jeżeli prawidłowo wykonałeś powyższe operacje wszystkie pola powinny być uzupełnione jak na screenie poniżej (wartości zostały zamazane ze względów bezpieczeństwa) a ostatni agent (com.plus.android.info) pojawił się jako przykład kolejnych agentów które mogą się pojawić na liście w zależności od wdrożonych na serwerze funkcjonalności. W wersji standardowej pojawią się dwa pierwsze. FCM Web API Key i App IDs uzupełnione zostaną po wklejeniu poprawnego pliku .JSON.



Jeżeli pola są uzupełnione wybierz Save.

Aby ostatecznie zapisać zmiany i zakończyć proces wróć do głównego menu narzędzia konfiguracyjnego i kliknij FINISH & SAVE CONFIG.



Aby zweryfikować czy integracja przebiegła pomyślnie dodaj:

topic: Android push
debug: android.log

w /var/www/aplikacje/logging.local.conf


Następnie wprowadź komendę: 

killall -HUP fflogd

wyślij Push na urządzenie z Androidem (np. wywołaj Monitor Użycia z konsoli webowej FAMOC)  po czym wykonaj:

cat /var/log/famoc/android.log | grep -i fcm

Polecenie spowoduje wyświetlenie loga wraz z komunikatem FCM:

Signal sent to Android Push Notification service over FCM

Powyższy komunikat oznacza, że integracja przebiegła poprawnie. W przypadku niepowodzenia mogą wyświetlić się komunikaty:

We couldn't send FCM message as Registration Device Identifier is INVALID or DOES NOT EXIST

lub:

FCM message could not be sent: (ERROR DESC)

Najczęstszą przyczyną jest niezgodność GCM ID z FCM ID.