Wiadomości do grupy urządzeń umożliwiają dodanie wielu urządzeń do jednej grupy. Jest to podobne do wysyłania wiadomości do tematów, ale obejmuje uwierzytelnianie, aby mieć pewność, że członkostwem w grupie 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 w odpowiednich grupach oraz wysyłać odpowiednie wiadomości do każdej grupy. Wysyłanie wiadomości do grup urządzeń różni się od wysyłania wiadomości do tematów tym, że wymaga zarządzania grupami urządzeń z serwerów, a nie bezpośrednio w aplikacji.
Maksymalna dozwolona liczba członków klucza powiadomień to 20.
Zarządzanie grupami urządzeń
Przed wysłaniem wiadomości do grupy urządzeń musisz:
-
uzyskać tokeny rejestracji każdego urządzenia, które chcesz dodać do grupy;
-
Utwórz
notification_key
, który identyfikuje grupę urządzeń, mapując konkretną grupę (zwykle 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 krótkotrwałych tokenów do autoryzowania wysyłania żądań. Listę obsługiwanych kluczy znajdziesz w artykule Klucze 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
reprezentujący grupę urządzeń.
Żądanie HTTP POST
Wyślij żądanie podobne do tego do https://fcm.googleapis.com/fcm/notification
:
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...", ... ]
notification_key_name
to nazwa lub identyfikator (np. nazwa użytkownika), który jest unikalny w danej grupie. Wartości notification_key_name
i notification_key
są unikalne dla grupy tokenów rejestracji. Ważne jest, aby parametr notification_key_name
był unikalny dla każdej aplikacji klienta, jeśli masz wiele aplikacji klienta dla tego samego identyfikatora nadawcy.
Dzięki temu wiadomości będą trafiać tylko do docelowej aplikacji.
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żyć ich w kolejnych operacjach.
Pobieranie klucza powiadomień
Jeśli chcesz pobrać istniejący klucz powiadomienia, użyj parametru notification_key_name
w żądaniu GET, jak pokazano poniżej:
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 dotyczącego danej nazwy klucza powiadomienia serwer zwraca unikalny zakodowany ciąg znaków. Chociaż każdy ciąg znaków może wyglądać jak inny klucz, w rzeczywistości jest prawidłową wartością `notification_key`.
Dodawanie i usuwanie urządzeń z grupy urządzeń
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
i podaj tokeny rejestracji, które chcesz dodać lub usunąć.
Żądanie HTTP POST
Aby na przykład dodać urządzenie z tokenem rejestracji bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
do appUser-Chris
, wyślij to żądanie:
{
"operation": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Format odpowiedzi
Żądanie dodania lub usunięcia urządzenia, które zostało rozpatrzone pozytywnie, zwraca notification_key
podobny do tego:
{ "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 członków.
Tabela 10. Klucze zarządzania grupami urządzeń.
Parametr | Wykorzystanie | Opis |
---|---|---|
operation |
Wymagany, ciąg znaków | Operacja do wykonania.Prawidłowe wartości to create , add i remove . |
notification_key_name |
Wymagany, ciąg znaków | Nazwa grupy urządzeń zdefiniowana przez użytkownika, którą chcesz utworzyć lub zmodyfikować. |
notification_key |
Wymagany (z wyjątkiem operacji create , ciąg znaków) |
Unikalny identyfikator grupy urządzeń. Ta wartość jest zwracana w odpowiedzi na udaną operację create i jest wymagana w przypadku wszystkich kolejnych operacji na grupie urządzeń. |
registration_ids |
Wymagane, tablica ciągów znaków | Tokeny urządzenia do dodania lub usunięcia. Jeśli usuniesz z grupy urządzeń wszystkie tokeny rejestracji, FCM usunie tę grupę. |
Wysyłanie wiadomości do grup urządzeń
Wysyłanie wiadomości do grupy urządzeń jest bardzo podobne do wysyłania wiadomości do pojedynczego urządzenia. Używa się tej samej metody autoryzowania żą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