Wiadomości grupowe urządzeń umożliwiają dodanie wielu urządzeń do jednej grupy. Jest to podobne do przesyłania wiadomości tematycznych, ale obejmuje uwierzytelnianie, aby zapewnić, że członkostwem w grupie zarządzają wyłącznie Twoje serwery. Na przykład, jeśli chcesz wysyłać różne wiadomości do różnych modeli telefonów, Twoje serwery mogą dodawać/usuwać rejestracje do odpowiednich grup i wysyłać odpowiednią wiadomość do każdej grupy. Wiadomości grupowe urządzeń różnią się od wiadomości tematycznych tym, że obejmują zarządzanie grupami urządzeń z serwerów, a nie bezpośrednio w aplikacji.
Maksymalna liczba członków dozwolona dla klucza powiadomień wynosi 20.
Zarządzanie grupami urządzeń
Przed wysłaniem wiadomości do grupy urządzeń musisz:
Zdobądź tokeny rejestracyjne dla każdego urządzenia, które chcesz dodać do grupy.
Utwórz
notification_key
, który identyfikuje grupę urządzeń poprzez mapowanie określonej grupy (zwykle użytkownika) na wszystkie powiązane z nią tokeny rejestracji. Możesz utworzyć klucze powiadomień na serwerze aplikacji.
Podstawowe zarządzanie grupami urządzeń — tworzenie i usuwanie grup oraz dodawanie i usuwanie urządzeń — odbywa się za pośrednictwem interfejsu API HTTP v1, przy użyciu tokenów krótkotrwałych do autoryzacji żądań wysł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 zawierające nazwę grupy oraz listę tokenów rejestracji urządzeń. FCM zwraca nowy notification_key
, który reprezentuje grupę urządzeń.
Żądanie HTTP POST
Wyślij żądanie podobne do poniższego na 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. może to być nazwa użytkownika), który jest unikalny dla danej grupy. notification_key_name
i notification_key
są unikalne dla grupy tokenów rejestracyjnych. Ważne jest, aby notification_key_name
była unikalna dla każdej aplikacji klienckiej, jeśli masz wiele aplikacji klienckich dla tego samego identyfikatora nadawcy . Dzięki temu wiadomości trafiają tylko do zamierzonej aplikacji docelowej.
Format odpowiedzi
Pomyślne żądanie zwraca notification_key
, taki jak poniżej:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Zapisz notification_key
i odpowiednią notification_key_name
do wykorzystania w kolejnych operacjach.
Pobieranie klucza powiadomienia
Jeśli chcesz odzyskać istniejący klucz powiadomienia, użyj notification_key_name
w żądaniu GET, jak pokazano:
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 {}
Dla każdego żądania GET dla danej nazwy klucza powiadomienia serwer zwraca unikalny zakodowany ciąg znaków. Chociaż każdy ciąg może wyglądać na inny klucz, w rzeczywistości jest to prawidłowa wartość `klucza_powiadomienia`.
Dodawanie i usuwanie urządzeń z grupy urządzeń
Aby dodać lub usunąć urządzenia z istniejącej grupy należy wysłać żądanie POST z parametrem operation
ustawionym na add
lub remove
i podaj tokeny rejestracji do dodania lub usunięcia.
Żądanie HTTP POST
Na przykład, aby dodać urządzenie z tokenem rejestracyjnym 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
Pomyślne żądanie dodania lub usunięcia urządzenia zwraca notification_key
podobny do poniższego:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Klucze zarządzania grupą urządzeń
W poniższej tabeli wymieniono klawisze służące do tworzenia grup urządzeń oraz dodawania i usuwania członków.
Tabela 10. Klucze zarządzania grupami urządzeń.
Parametr | Stosowanie | Opis |
---|---|---|
operation | Wymagane, ciąg | Operacja do uruchomienia. Prawidłowe wartości to: create , add i remove . |
notification_key_name | Wymagane, ciąg | Zdefiniowana przez użytkownika nazwa grupy urządzeń, która ma zostać utworzona lub zmodyfikowana. |
notification_key | Wymagane (z wyjątkiem operacji create , string | Unikalny identyfikator grupy urządzeń. Ta wartość jest zwracana w odpowiedzi na pomyślną operację create i jest wymagana dla wszystkich kolejnych operacji na grupie urządzeń. |
registration_ids | Wymagane, tablica ciągó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ę urządzeń. |
Wysyłanie dalszych wiadomości do grup urządzeń
Aby wysyłać wiadomości do grup urządzeń, użyj interfejsu API HTTP v1. Jeśli obecnie wysyłasz do grup urządzeń przy użyciu przestarzałych starszych interfejsów API wysyłania dla HTTP lub XMPP albo dowolnej starszej wersji pakietu Firebase Admin SDK dla Node.js opartej na starszych protokołach, zdecydowanie zalecamy migrację do protokołu HTTP v1 API przy najbliższej okazji. Starsze interfejsy API 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, przy użyciu tej samej metody autoryzacji żądań wysłania . Ustaw pole token
na klucz powiadomienia grupowego:
ODPOCZYNEK
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
Wysyłanie wiadomości nadrzędnych do grup urządzeń
Aplikacje klienckie mogą wysyłać wiadomości do grup urządzeń, kierując wiadomości do odpowiedniego klucza powiadomienia w polu to
.
Następujące wywołanie FCM wysyła wiadomość nadrzędną do klucza powiadomienia.
Firebase.Messaging.Message message; message.To = notification_key; message.MessageId = a_unique_message_id; message.Data["hello"] = "world"; Firebase.Messaging.FirebaseMessaging.Send(message);