Wiadomości w grupie urządzeń umożliwiają dodanie wielu urządzeń do jednej grupy. Przypomina to przesyłanie wiadomości na tematy, ale obejmuje uwierzytelnianie, dzięki któremu Członkostwem w grupie zarządzają wyłącznie Twoje serwery. Jeśli chcesz na przykład wysyłać różne wiadomości do różnych modeli telefonów, Twoje serwery mogą dodawać/usuwać do odpowiednich grup i wysyłaj odpowiednie wiadomości grupy reklam. Wysyłanie wiadomości w grupie urządzeń różni się od wiadomości tematycznej tym, że obejmuje i zarządzanie grupami urządzeń z poziomu serwerów, a nie bezpośrednio w aplikacji.
Klucz powiadomień może mieć maksymalnie 20 użytkowników.
Zarządzanie grupami urządzeń
Zanim wyślesz wiadomości do grupy urządzeń, musisz:
-
Uzyskiwanie tokenów rejestracji dla każdego urządzenia, które chcesz dodać do grupy.
-
Utwórz
notification_key
, który identyfikuje grupę urządzeń przez mapowanie konkretnej grupy (zwykle jest to użytkownika) do wszystkich powiązanych tokenów rejestracji grupy. Klucze powiadomień możesz utworzyć na serwerze aplikacji.
Podstawowe zarządzanie grupami urządzeń – tworzenie i usuwanie grup oraz dodawanie i usuwanie urządzeń – odbywa się przez interfejs API HTTP w wersji 1, za pomocą tokenów krótkotrwałych autoryzować żądania wysłania. Zobacz Klucze do zarządzania grupami urządzeń, w których znajduje się lista obsługiwanych kluczy.
Zarządzanie grupami urządzeń na serwerze aplikacji
Tworzenie grupy urządzeń
Aby utworzyć grupę urządzeń, wyślij żądanie POST z nazwą
dla grupy i listę tokenów rejestracji urządzeń.
FCM zwraca nowe: notification_key
reprezentującą grupę urządzeń.
Żądanie HTTP POST
Wyślij prośbę podobną 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. może to być nazwa użytkownika) unikalna dla danej grupy.
notification_key_name
i
notification_key
są unikalne dla grupy rejestracji
tokeny. Ważne jest, aby notification_key_name
był
unikalne dla każdej aplikacji klienckiej, jeśli masz kilka aplikacji klienckich dla tej samej
identyfikator nadawcy.
Dzięki temu wiadomości będą kierowane tylko do odpowiedniej aplikacji docelowej.
Format odpowiedzi
Pomyślne żądanie zwraca notification_key
polubienie
następujące:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Zapisz właściwości notification_key
oraz odpowiadające im
notification_key_name
do użycia w kolejnych operacjach.
Pobieram klucz powiadomień
Jeśli chcesz odzyskać istniejący klucz powiadomień, 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 {}
Przy każdym żądaniu GET dla danej nazwy klucza powiadomień serwer zwraca unikalny zakodowany ciąg. Chociaż każdy ciąg może wydawać się inny klucz, jest to w rzeczywistości prawidłowa wartość `notification_key`.
Dodawanie urządzeń do grupy i usuwanie ich z niej
Aby dodać urządzenia do istniejącej grupy lub je z niej usunąć, wyślij POST
z parametrem operation
ustawionym na
add
lub remove
i podaj
tokeny rejestracji do dodania lub usunięcia.
Żądanie HTTP POST
Aby na przykład dodać atrybut
urządzenie z tokenem rejestracji bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
do: appUser-Chris
, należy wysłać to żądanie:
{
"operation": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Format odpowiedzi
Pomyślna prośba o dodanie lub usunięcie urządzenia zwraca
notification_key
podobne do tego:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Klucze do zarządzania grupami urządzeń
W tabeli poniżej znajdziesz listę kluczy do tworzenia grup urządzeń oraz dodawanie i usuwanie członków.
Tabela 10. Klucze do zarządzania grupami urządzeń.
Parametr | Wykorzystanie | Opis |
---|---|---|
operation |
Wymagane, ciąg znaków | Operacja do uruchomienia.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ń, którą chcesz utworzyć lub zmodyfikować. |
notification_key |
Wymagany (oprócz operacji create , ciąg znaków) |
Unikalny identyfikator grupy urządzeń. Ta wartość
jest zwracany w odpowiedzi na żądanie create
i jest
wymagane do wszystkich kolejnych operacji w grupie urządzeń. |
registration_ids |
Wymagana tablica ciągów znaków | Tokeny urządzeń, które chcesz dodać lub usunąć. 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 API HTTP w wersji 1. Jeśli obecnie wysyłania do grup urządzeń za pomocą wycofanych, starszych interfejsów API HTTP lub XMPP bądź jego starsze wersje Firebase Admin SDK dla środowiska Node.js na podstawie starszych protokołów, zdecydowanie zalecamy migracja do interfejsu API HTTP w wersji 1 przy najbliższej okazji. Starsze interfejsy API wysyłania zostanie wyłączony i usunięty w czerwcu 2024 r.
Wysyłanie wiadomości do grupy urządzeń jest bardzo podobne do wysyłania wiadomości
na pojedyncze urządzenie, w ten sam sposób
autoryzować żądania wysłania. Ustaw token
do klucza powiadomień 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