Catch up on highlights from Firebase at Google I/O 2023. Learn more

Invia messaggi a gruppi di dispositivi su Unity

La messaggistica del gruppo di dispositivi consente di aggiungere più dispositivi a un singolo gruppo. È simile alla messaggistica dell'argomento, ma include l'autenticazione per garantire che l'appartenenza al gruppo sia gestita solo dai tuoi server. Ad esempio, se desideri inviare messaggi diversi a diversi modelli di telefono, i tuoi server possono aggiungere/rimuovere registrazioni ai gruppi appropriati e inviare il messaggio appropriato a ciascun gruppo. La messaggistica dei gruppi di dispositivi differisce dalla messaggistica degli argomenti in quanto comporta la gestione dei gruppi di dispositivi dai server anziché direttamente all'interno dell'applicazione.

Il numero massimo di membri consentiti per una chiave di notifica è 20.

Gestione dei gruppi di dispositivi

Prima di inviare messaggi a un gruppo di dispositivi, è necessario:

  1. Ottieni i token di registrazione per ogni dispositivo che vuoi aggiungere al gruppo.

  2. Crea la notification_key , che identifica il gruppo di dispositivi mappando un particolare gruppo (in genere un utente) a tutti i token di registrazione associati al gruppo. Puoi creare chiavi di notifica sul server app.

La gestione di base dei gruppi di dispositivi (creazione e rimozione di gruppi e aggiunta o rimozione di dispositivi) viene eseguita tramite l'API HTTP v1, utilizzando token di breve durata per autorizzare le richieste di invio . Vedere Chiavi di gestione del gruppo di dispositivi per un elenco delle chiavi supportate.

Gestione dei gruppi di dispositivi sull'app server

Creazione di un gruppo di dispositivi

Per creare un gruppo di dispositivi, invia una richiesta POST che fornisca un nome per il gruppo e un elenco di token di registrazione per i dispositivi. FCM restituisce una nuova notification_key che rappresenta il gruppo di dispositivi.

Richiesta POST HTTP

Invia una richiesta come la seguente a 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...",
                        ... ]

Il notification_key_name è un nome o identificatore (ad esempio, può essere un nome utente) unico per un dato gruppo. notification_key_name e notification_key sono univoci per un gruppo di token di registrazione. È importante che notification_key_name sia univoco per app client se disponi di più app client per lo stesso ID mittente . Ciò garantisce che i messaggi vengano inviati solo all'app di destinazione prevista.

Formato della risposta

Una richiesta andata a buon fine restituisce una notification_key come la seguente:

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

Salvare la notification_key e il corrispondente notification_key_name da utilizzare nelle operazioni successive.

Recupero di una chiave di notifica

Se è necessario recuperare una chiave di notifica esistente, utilizzare notification_key_name in una richiesta GET come mostrato:

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
{}

Per ogni richiesta GET per un determinato nome di chiave di notifica, il server restituisce una stringa codificata univoca. Sebbene ogni stringa possa sembrare una chiave diversa, in realtà è un valore `notification_key` valido.

Aggiunta e rimozione di dispositivi da un gruppo di dispositivi

Per aggiungere o rimuovere dispositivi da un gruppo esistente, inviare una richiesta POST con il parametro operation impostato su add or remove e fornire i token di registrazione per l'aggiunta o la rimozione.

Richiesta POST HTTP

Ad esempio, per aggiungere un dispositivo con il token di registrazione bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... a appUser-Chris , devi inviare questa richiesta:

{
   "operation": "add",
   "notification_key_name": "appUser-Chris",
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
   "registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}

Formato della risposta

Una richiesta riuscita di aggiungere o rimuovere un dispositivo restituisce una notification_key come la seguente:

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

Chiavi di gestione del gruppo di dispositivi

Nella tabella seguente sono elencate le chiavi per la creazione di gruppi di dispositivi e l'aggiunta e la rimozione di membri.

Tabella 10. Chiavi di gestione del gruppo di dispositivi.

Parametro Utilizzo Descrizione
operation Obbligatorio, stringa L'operazione da eseguire. I valori validi sono create , add e remove .
notification_key_name Obbligatorio, stringa Il nome definito dall'utente del gruppo di dispositivi da creare o modificare.
notification_key Obbligatorio (ad eccezione dell'operazione create , string Identificatore univoco del gruppo di dispositivi. Questo valore viene restituito nella risposta per un'operazione create riuscita ed è necessario per tutte le operazioni successive sul gruppo di dispositivi.
registration_ids Obbligatorio, matrice di stringhe I token del dispositivo da aggiungere o rimuovere. Se rimuovi tutti i token di registrazione esistenti da un gruppo di dispositivi, FCM elimina il gruppo di dispositivi.

Invio di messaggi downstream a gruppi di dispositivi

Per inviare messaggi a gruppi di dispositivi, utilizzare l'API HTTP v1. Se attualmente invii a gruppi di dispositivi utilizzando le API di invio legacy obsolete per HTTP o XMPP o una qualsiasi delle versioni precedenti dell'SDK Firebase Admin per Node.js basato sui protocolli legacy, ti consigliamo vivamente di eseguire la migrazione a HTTP v1 API alla prima occasione. Le API di invio legacy verranno disabilitate e rimosse a giugno 2024.

L'invio di messaggi a un gruppo di dispositivi è molto simile all'invio di messaggi a un singolo dispositivo, utilizzando lo stesso metodo per autorizzare le richieste di invio . Imposta il campo token sulla chiave di notifica di gruppo:

RIPOSO

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!"
      }
   }
}

comando arriccia

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

Invio di messaggi upstream a gruppi di dispositivi

Le app client possono inviare messaggi a monte ai gruppi di dispositivi indirizzando i messaggi alla chiave di notifica appropriata nel campo to .

La seguente chiamata a FCM invia un messaggio upstream a una chiave di notifica.

Firebase.Messaging.Message message;
message.To = notification_key;
message.MessageId = a_unique_message_id;
message.Data["hello"] = "world";
Firebase.Messaging.FirebaseMessaging.Send(message);