Invia messaggi a gruppi di dispositivi su Unity

La messaggistica di gruppo dei dispositivi ti consente di aggiungere più dispositivi a un unico gruppo. È simile alla messaggistica per argomenti, ma include l'autenticazione per garantire che l'appartenenza ai gruppi è gestita solo dai tuoi server. Ad esempio, se vuoi inviare messaggi diversi a modelli di telefono diversi, i server possono aggiungere/rimuovere registrazioni ai gruppi appropriati e inviare il messaggio appropriato a ciascuno gruppo. La messaggistica dei gruppi di dispositivi è diversa da quella degli argomenti per il fatto che comporta per gestire i gruppi di dispositivi dai tuoi server anziché direttamente all'interno un'applicazione.

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

Gestire i gruppi di dispositivi

Prima di inviare messaggi a un gruppo di dispositivi, devi:

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

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

La gestione di base dei gruppi di dispositivi, ovvero la creazione e la rimozione di gruppi, nonché l'aggiunta o la rimozione di dispositivi, viene eseguita tramite l'API HTTP v1, utilizzando token di breve durata per autorizzare l'invio di richieste. Vedi Chiavi di gestione dei gruppi di dispositivi per un elenco delle chiavi supportate.

Gestione di gruppi di dispositivi sul server delle app

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 un nuovo 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...",
                        ... ]

notification_key_name è un nome o un identificatore (ad es. un nome utente) univoco per un determinato gruppo. notification_key_name e notification_key sono univoci per un gruppo di token di registrazione. È importante che notification_key_name sia univoco per ogni app client se hai più app client per lo stesso ID mittente. In questo modo ti assicuri che i messaggi vengano inviati solo all'app di destinazione prevista.

Formato della risposta

Una richiesta riuscita restituisce un notification_key simile al seguente:

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

Salva notification_key e i corrispondenti notification_key_name da utilizzare nelle operazioni successive.

Recupero di una chiave di notifica

Se devi recuperare una chiave di notifica esistente, utilizza il 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 dato nome di chiave di notifica, il server restituisce una stringa codificata univoca. Sebbene ogni stringa possa sembrare una chiave diversa, in realtà si tratta di un valore "notification_key" valido.

Aggiunta e rimozione di dispositivi da un gruppo di dispositivi

Per aggiungere o rimuovere dispositivi da un gruppo esistente, invia un POST con il parametro operation impostato su add o remove e fornisci il di registrazione da aggiungere o rimuovere.

Richiesta POST HTTP

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

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

Formato della risposta

Una richiesta di aggiunta o rimozione di un dispositivo andata a buon fine restituisce un notification_key come segue:

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

Chiavi di gestione dei gruppi di dispositivi

La tabella seguente elenca le chiavi per creare gruppi di dispositivi e aggiungere e rimuovere membri.

Tabella 10. Chiavi di gestione dei gruppi di dispositivi.

Parametro Utilizzo Descrizione
operation Obbligatorio, stringa 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 (tranne per l'operazione create, stringa Identificatore univoco del gruppo di dispositivi. Questo valore viene restituito nella risposta per un errore create operativa ed è necessaria per tutte le operazioni successive sul gruppo di dispositivi.
registration_ids Obbligatorio, array 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, utilizza l'API HTTP v1. Se al momento invii messaggi a gruppi di dispositivi utilizzando le API di invio legacy ritirate per HTTP o XMPP o una delle versioni precedenti di Firebase Admin SDK per Node.js basate sui protocolli legacy, ti consigliamo vivamente di eseguire la migrazione all'API HTTP v1 al più presto. Le API di invio legacy verrà disattivata e rimossa a giugno 2024.

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

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

Comando 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

Invio di messaggi in upstream ai gruppi di dispositivi

Le app client possono inviare messaggi a monte a gruppi di dispositivi indirizza i messaggi alla chiave di notifica appropriata Campo to.

La seguente chiamata a FCM invia un 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);