Wysyłaj wiadomości do grup urządzeń na Androidzie

Wiadomości grupowe urządzeń umożliwiają dodanie wielu urządzeń do jednej grupy. Jest to podobne do wysyłania wiadomości w temacie, ale obejmuje uwierzytelnianie, aby upewnić się, że członkostwo w grupie jest zarządzane tylko przez 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. Przesyłanie komunikatów grup urządzeń różni się od przesyłania komunikatów tematycznych tym, że obejmuje zarządzanie grupami urządzeń z serwerów, a nie bezpośrednio w aplikacji.

Maksymalna dozwolona liczba członków dla klucza powiadomień to 20.

Zarządzanie grupami urządzeń

Przed wysłaniem wiadomości do grupy urządzeń musisz:

  1. Uzyskaj tokeny rejestracji dla każdego urządzenia, które chcesz dodać do grupy.

  2. Utwórz notification_key , który identyfikuje grupę urządzeń, mapując określoną grupę (zwykle użytkownika) na wszystkie powiązane tokeny rejestracji grupy. 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 krótkotrwałych tokenów do autoryzacji wysyłania żądań . Zobacz Klucze zarządzania grupami urządzeń , aby zapoznać się z listą obsługiwanych kluczy.

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 prośbę podobną do poniższej 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), który jest unikalny dla danej grupy. notification_key_name i notification_key są unikatowe dla grupy tokenów rejestracji. Ważne jest, aby notification_key_name była unikatowa 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

Udane żądanie zwraca klucz notification_key , jak poniżej:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

Zapisz notification_key i odpowiednią notification_key_name do użycia w kolejnych operacjach.

Pobieranie klucza powiadomień

Jeśli chcesz pobrać 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 poprawna 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 HTTP POST

Na przykład, aby 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

Udane żądanie dodania lub usunięcia urządzenia zwraca klucz notification_key podobny do następującego:

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

Klucze zarządzania grupą urządzeń

W poniższej tabeli wymieniono klucze do tworzenia grup urządzeń oraz dodawania i usuwania członków.

Tabela 10. Klucze zarządzania grupą urządzeń.

Parametr Stosowanie Opis
operation Wymagany, ciąg Operacja do uruchomienia. Prawidłowe wartości to create , add i remove .
notification_key_name Wymagany, ciąg Zdefiniowana przez użytkownika nazwa grupy urządzeń do utworzenia lub zmodyfikowania.
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 wiadomości do grup urządzeń

Aby wysyłać wiadomości do grup urządzeń, użyj interfejsu HTTP v1 API. Jeśli obecnie wysyłasz do grup urządzeń przy użyciu wycofanych starszych interfejsów API wysyłania dla HTTP lub XMPP albo dowolnej starszej wersji 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ń wysyłania . Ustaw pole token na klucz powiadomień grupowych:

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