Wysyłanie wiadomości do grupy urządzeń umożliwia dodanie wielu urządzeń do jednej grupy. Jest to podobne do wysyłania wiadomości do tematu, ale obejmuje uwierzytelnianie, aby zapewnić, ż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, Twoje serwery mogą dodawać lub usuwać rejestracje w odpowiednich grupach i wysyłać odpowiednią wiadomość do każdej grupy. Wysyłanie wiadomości do grupy urządzeń różni się od wysyłania wiadomości do tematu tym, że zarządzanie grupami urządzeń odbywa się na Twoich serwerach, a nie bezpośrednio w aplikacji.
Maksymalna liczba członków klucza powiadomienia to 20.
Zarządzanie grupami urządzeń
Zanim zaczniesz wysyłać wiadomości do grupy urządzeń, musisz:
- uzyskać tokeny rejestracji dla każdego urządzenia, które chcesz dodać do grupy;
- utworzyć
notification_key, który identyfikuje grupę urządzeń przez zmapowanie konkretnej grupy (zazwyczaj użytkownika) na wszystkie powiązane z nią tokeny rejestracji. Klucze powiadomień możesz tworzyć na serwerze aplikacji.
Podstawowe funkcje zarządzania 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 żądań wysyłania. Listę obsługiwanych kluczy znajdziesz w sekcji 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 notification_key który reprezentuje grupę urządzeń.
Żądanie POST w protokole HTTP
Wyślij żądanie podobne do tego na adres 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 dla danej grupy. notification_key_name i
notification_key są unikalne dla grupy tokenów rejestracji. Jeśli masz
kilka aplikacji klienckich z tym samym identyfikatorem nadawcy, ważne jest, aby notification_key_name była unikalna dla każdej aplikacji klienckiej.
Dzięki temu wiadomości będą docierać tylko do docelowej aplikacji.
Format odpowiedzi
Prawidłowe żądanie zwraca notification_key w takiej postaci:
{
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}
Zapisz notification_key i odpowiadający mu notification_key_name, aby
używać ich w kolejnych operacjach.
Pobieranie klucza powiadomienia
Jeśli musisz pobrać istniejący klucz powiadomienia, użyj 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 to prawidłowa wartość notification_key.
Dodawanie i usuwanie urządzeń z grupy urządzeń
Aby dodać lub usunąć urządzenia z istniejącej grupy, wyślij żądanie POST z parametrem operation ustawionym na add lub remove i podaj tokeny rejestracji do dodania lub usunięcia.
Żądanie POST w protokole HTTP
Aby na przykład dodać urządzenie z tokenem rejestracji bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... do grupy appUser-Chris, wyślij to żądanie:
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": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Format odpowiedzi
Prawidłowe żądanie dodania lub usunięcia urządzenia zwraca notification_key w takiej postaci:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Klucze zarządzania grupami urządzeń
W tabeli poniżej znajdziesz listę kluczy do tworzenia grup urządzeń oraz dodawania i usuwania członków.
| 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 | Zdefiniowana przez użytkownika nazwa grupy urządzeń, 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 prawidłową operację create i jest wymagana we wszystkich kolejnych operacjach dotyczących grupy urządzeń. |
registration_ids |
Wymagany, 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ń
Wysyłanie wiadomości do grupy urządzeń jest bardzo podobne do wysyłania wiadomości do
pojedynczego urządzenia. Używana jest ta sama metoda do autoryzowania żądań wysyłania.
W polu token ustaw klucz powiadomienia grupy:
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