Wiadomości do grup urządzeń umożliwiają dodawanie wielu urządzeń do jednej grupy. Jest to podobne do 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, Twoje serwery mogą dodawać lub usuwać rejestracje w odpowiednich grupach i wysyłać odpowiednią wiadomość do każdej grupy. Wiadomości do grup urządzeń różnią się od wiadomości do tematów tym, że zarządzanie grupami urządzeń odbywa się na Twoich serwerach, a nie bezpośrednio w aplikacji.
Maksymalna liczba członków dozwolona w przypadku klucza powiadomienia to 20.
Zarządzanie grupami urządzeń
Zanim wyślesz 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 (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 żą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...",
... ]
}
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. It is
ważne, aby wartość notification_key_name była unikalna dla każdej aplikacji klienckiej, jeśli masz
kilka aplikacji klienckich z tym samym identyfikatorem nadawcy.
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ącą mu wartość notification_key_name, aby
używać ich w kolejnych operacjach.
Pobieranie klucza powiadomienia
Jeśli musisz pobrać istniejący klucz powiadomienia, użyj wartości 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.
Pobieranie FCM tokenów dla grup urządzeń
Jeśli musisz pobrać tokeny FCM należące do grupy urządzeń, użyj wartości
notification_key w żądaniu GET, jak pokazano poniżej:
https://fcm.googleapis.com/fcm/notification?notification_key=APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID
{}
Odpowiedź wygląda tak:
{
"notification_key_name": "appUser-Chris",
"registration_ids": ["token1", "token2"]
}
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 | Nazwa grupy urządzeń zdefiniowana przez użytkownika, która ma zostać utworzona lub zmodyfikowana. |
notification_key |
Wymagany (z wyjątkiem operacji create), ciąg znaków |
Unikalny identyfikator grupy urządzeń. Ta wartość jest zwracana w odpowiedzi na operację create zakończoną powodzeniem i jest wymagana w przypadku wszystkich kolejnych operacji na grupie 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.
Ustaw pole token na 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