Wiadomości w grupie urządzeń umożliwiają dodawanie wielu urządzeń do jednej grupy. Jest to podobne do wiadomości na temat, ale obejmuje uwierzytelnianie, aby zapewnić, że członkostwem grupy zarządzają tylko Twoje serwery. Jeśli na przykład chcesz wysyłać różne wiadomości do różnych modeli telefonów, serwery mogą dodawać i usuwać rejestracje do odpowiednich grup oraz wysyłać odpowiednie wiadomości do każdej z nich. Wiadomości grup urządzeń różnią się od wiadomości o tematach tym, że obejmują one zarządzanie grupami urządzeń na serwerach, a nie bezpośrednio w aplikacji.
Maksymalna liczba użytkowników klucza powiadomień to 20.
Zarządzanie grupami urządzeń
Zanim wyślesz wiadomości do grupy urządzeń, musisz:
-
Uzyskaj tokeny rejestracji dla każdego urządzenia, które chcesz dodać do grupy.
-
Utwórz
notification_key
, który identyfikuje grupę urządzeń, mapując konkretną grupę (zazwyczaj użytkownika) na wszystkie powiązane z nią tokeny rejestracji. Klucze powiadomień możesz tworzyć na serwerze aplikacji.
Podstawowe zarządzanie grupami urządzeń (tworzenie i usuwanie grup oraz dodawanie i usuwanie urządzeń) odbywa się za pomocą interfejsu HTTP v1 API, przy użyciu tokenów o krótkim czasie ważności do autoryzowania żądań wysyłania. Listę obsługiwanych kluczy znajdziesz w artykule Klucze do zarządzania grupami urządzeń.
Zarządzanie grupami urządzeń na serwerze aplikacji
Tworzenie grupy urządzeń
Aby utworzyć grupę urządzeń, wyślij żądanie POST, które zawiera nazwę grupy i listę tokenów rejestracji urządzeń.
FCM zwraca nowy obiekt notification_key
, który reprezentuje grupę urządzeń.
Żądanie HTTP POST
Wyślij do https://fcm.googleapis.com/fcm/notification
prośbę o zmiany o takim brzmieniu:
https://fcm.googleapis.com/fcm/notification Content-Type:application/json access_token_auth: true Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA project_id:SENDER_ID { "operation": "create", "notification_key_name": "appUser-Chris", "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...", "cR1rjyj4_Kc:APA91bGusqbypSuMdsh7jSNrW4nzsM...", ... ]
Wartość notification_key_name
to nazwa lub identyfikator (np. nazwa użytkownika), który jest unikalny dla danej grupy. Wartości notification_key_name
i notification_key
są unikalne dla grupy tokenów rejestracji. Jeśli masz kilka aplikacji klienta z tym samym identyfikatorem nadawcy, ważne jest, aby wartość notification_key_name
była unikalna dla każdej z nich.
Dzięki temu wiadomości trafiają tylko do wybranej aplikacji docelowej.
Format odpowiedzi
Pomyślne żądanie zwraca notification_key
podobny do tego:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Zapisz notification_key
i odpowiadający mu notification_key_name
, aby używać ich w kolejnych operacjach.
Pobieranie klucza powiadomień
Jeśli chcesz pobrać istniejący klucz powiadomienia, użyj parametru notification_key_name
w żądaniu GET w ten sposób:
https://fcm.googleapis.com/fcm/notification?notification_key_name=appUser-Chris Content-Type:application/json access_token_auth: true Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA project_id:SENDER_ID {}
W przypadku każdego żądania GET dla danego klucza powiadomienia serwer zwraca niepowtarzalny zakodowany ciąg znaków. Chociaż każdy ciąg może wyglądać jak inny klucz, jest to w rzeczywistości prawidłowa wartość parametru „notification_key”.
Dodawanie urządzeń do grupy urządzeń i usuwanie ich z niej
Aby dodać urządzenia do istniejącej grupy lub je z niej usunąć, wyślij żądanie POST z parametrem operation
ustawionym na add
lub remove
oraz podaj tokeny rejestracji, które mają zostać dodane lub usunięte.
Żądanie HTTP POST
Aby na przykład dodać urządzenie z tokenem rejestracji bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
do grupy appUser-Chris
, wyślij takie żądanie:
{
"operation": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Format odpowiedzi
Pomyślne żądanie dodania lub usunięcia urządzenia zwraca odpowiedź notification_key
, która wygląda tak:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Klucze zarządzania grupami urządzeń
W tabeli poniżej znajdziesz klucze do tworzenia grup urządzeń oraz dodawania i usuwania z nich członków.
Parametr | Wykorzystanie | Opis |
---|---|---|
operation |
Wymagane, ciąg znaków | Operacja do wykonania.Prawidłowe wartości to create , add i remove . |
notification_key_name |
Wymagane, ciąg znaków | Zdefiniowana przez użytkownika nazwa grupy urządzeń do utworzenia lub zmodyfikowania. |
notification_key |
Wymagany (z wyjątkiem operacji create , ciągu znaków |
Unikalny identyfikator grupy urządzeń. Ta wartość jest zwracana w odpowiedzi na operację create , która się powiodła, i jest wymagana do wszystkich kolejnych operacji na grupie urządzeń. |
registration_ids |
Wymagane, tablica ciągów znaków | tokeny urządzeń do dodania lub usunięcia. Jeśli usuniesz wszystkie istniejące tokeny rejestracji z grupy urządzeń, FCM usunie tę grupę. |
Wysyłanie wiadomości do grup urządzeń
Aby wysyłać wiadomości do grup urządzeń, użyj interfejsu HTTP API w wersji 1. Jeśli obecnie wysyłasz dane do grup urządzeń za pomocą przestarzałych interfejsów API do wysyłania (HTTP lub XMPP) lub dowolnej ze starszych wersji interfejsu Firebase Admin SDK do Node.js opartej na przestarzałych protokołach, zdecydowanie zalecamy jak najszybsze przenieście na interfejs HTTP v1 API. Starsze interfejsy API do wysyłania zostaną wyłączone i usunięte w czerwcu 2024 r.
Wysyłanie wiadomości do grupy urządzeń jest bardzo podobne do wysyłania wiadomości do pojedynczego urządzenia. W obu przypadkach stosuje się tę samą metodę autoryzacji żądań wysyłania. W polu token
ustaw klucz powiadomienia grupowego:
REST
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1
Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
{
"message":{
"token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"data":{
"hello": "This is a Firebase Cloud Messaging device group message!"
}
}
}
Polecenie cURL
curl -X POST -H "Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA" -H "Content-Type: application/json" -d '{
"message":{
"data":{
"hello": "This is a Firebase Cloud Messaging device group message!"
},
"token":"APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}}' https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send