Wysyłaj wiadomości do grup urządzeń w Unity

Wiadomości w grupie urządzeń umożliwiają dodawanie wielu urządzeń do jednej grupy. Jest to podobne do wiadomości na temat, ale obejmuje uwierzytelnianie, aby zapewnić, że członkostwem grupy zarządzają tylko Twoje serwery. Jeśli na przykład chcesz wysyłać różne wiadomości na różne modele telefonów, Twoje serwery mogą dodawać lub usuwać rejestracje do odpowiednich grup i wysyłać do każdej z nich odpowiednie wiadomości. Wiadomości wysyłane do grup urządzeń różnią się od wiadomości sekcji w tym, że dotyczą zarządzania grupami urządzeń na serwerach, a nie bezpośrednio w aplikacji.

Maksymalna liczba użytkowników klucza powiadomień to 20.

Zarządzanie grupami urządzeń

Zanim wyślesz 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 konkretną grupę (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 tokenów o krótkim czasie ważności do autoryzowania żądań wysyłania. Listę obsługiwanych kluczy znajdziesz w artykule Klucze do 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 obiekt notification_key, który reprezentuje grupę urządzeń.

Żądanie HTTP POST

Wyślij prośbę podobną do tej 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...",
                        ... ]

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. Jeśli masz kilka aplikacji klienta z tym samym identyfikatorem nadawcy, ważne jest, aby wartość notification_key_name była unikalna dla każdej z nich. Dzięki temu wiadomości trafiają tylko do wybranej aplikacji docelowej.

Format odpowiedzi

Pomyślne żądanie zwraca notification_key podobny do tego:

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

Zapisz notification_key i odpowiadający mu notification_key_name, aby używać ich w kolejnych operacjach.

Pobieranie klucza powiadomień

Jeśli chcesz pobrać istniejący klucz powiadomienia, użyj parametru notification_key_name w żądaniu GET w ten sposób:

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 dla danego klucza powiadomienia serwer zwraca unikalny zakodowany ciąg znaków. Chociaż każdy ciąg może wydawać się innym kluczem, w rzeczywistości jest to prawidłowa wartość parametru „notification_key”.

Dodawanie urządzeń do grupy urządzeń i usuwanie ich z niej

Aby dodać urządzenia do istniejącej grupy lub je z niej usunąć, wyślij żądanie 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ć do organizacji appUser-Chris urządzenie z tokenem rejestracji bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..., trzeba było wysłać 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 odpowiedź notification_key, która wygląda tak:

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

Klucze zarządzania grupami urządzeń

W tabeli poniżej znajdziesz klucze do tworzenia grup urządzeń oraz dodawania i usuwania z nich członków.

Tabela 10. Klucze do zarządzania grupami urządzeń.

Parametr Wykorzystanie Opis
operation Wymagane, ciąg znaków Operacja do wykonania. 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ń do utworzenia lub zmodyfikowania.
notification_key Wymagane (z wyjątkiem operacji create, ciągu znaków Unikalny identyfikator grupy urządzeń. Ta wartość jest zwracana w odpowiedzi na operację create, która się powiodła, i jest wymagana do wszystkich kolejnych operacji na grupie urządzeń.
registration_ids Wymagane, 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ń

Aby wysyłać wiadomości do grup urządzeń, użyj interfejsu API HTTP w wersji 1. Jeśli wysyłasz obecnie wiadomości do grup urządzeń za pomocą wycofanych starszych interfejsów API wysyłania do HTTP lub XMPP albo dowolnych starszych wersji Firebase Admin SDK dla Node.js opartych na starszych protokołach, zdecydowanie zalecamy jak najszybsze przejście na interfejs API HTTP w wersji 1. Starsze interfejsy API do 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 na pojedyncze urządzenie – przy użyciu tej samej metody autoryzowania żądań wysłania. W polu token ustaw klucz powiadomienia grupowego:

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

Wysyłanie wiadomości nadrzędnych do grup urządzeń

Aplikacje klienckie mogą wysyłać wiadomości do grup urządzeń, kierując je na odpowiedni klucz powiadomienia w polu to.

Następujący wywołanie funkcji FCM wysyła komunikat w górę 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);