La messaggistica dei gruppi di dispositivi ti consente di aggiungere più dispositivi a un singolo gruppo. È simile alla messaggistica per argomento, ma include l'autenticazione per garantire che l'iscrizione al gruppo sia gestita solo dai tuoi server.
Ad esempio, se vuoi inviare messaggi diversi a modelli di smartphone diversi, i tuoi server possono aggiungere o rimuovere le registrazioni ai gruppi appropriati e inviare il messaggio appropriato a ogni gruppo. La messaggistica dei gruppi di dispositivi differisce dalla messaggistica per argomento in quanto comporta la gestione dei gruppi di dispositivi dai tuoi server anziché direttamente all'interno dell'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:
- Ottenere i token di registrazione per ogni dispositivo che vuoi aggiungere al gruppo.
- Creare la
notification_key, che identifica il gruppo di dispositivi mappando un gruppo specifico (in genere un utente) a tutti i token di registrazione associati del 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 e l'aggiunta o la rimozione di dispositivi, viene eseguita utilizzando l'API HTTP v1, con token di breve durata per autorizzare le richieste di invio. Per un elenco delle chiavi supportate, consulta Chiavi di gestione dei gruppi di dispositivi.
Gestire i gruppi di dispositivi sul server dell'app
Creare 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 HTTP POST
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. può essere un nome utente) univoco per un determinato gruppo. The 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 hai
più app client per lo stesso ID mittente.
In questo modo, i messaggi vengono inviati solo all'app di destinazione prevista.
Formato della risposta
Una richiesta riuscita restituisce una notification_key come la seguente:
{
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}
Salva la notification_key e la notification_key_name corrispondente da
utilizzare nelle operazioni successive.
Recuperare una chiave di notifica
Se devi recuperare una chiave di notifica esistente, utilizza notification_key_name in una richiesta GET come mostrato di seguito:
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.
Aggiungere e rimuovere dispositivi da un gruppo di dispositivi
Per aggiungere o rimuovere dispositivi da un gruppo esistente, invia una richiesta POST con il parametro operation impostato su add o remove e fornisci i token di registrazione da aggiungere o rimuovere.
Richiesta HTTP POST
Ad esempio, per aggiungere un dispositivo con il token di registrazione bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1... a appUser-Chris, invia questa richiesta:
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": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Formato della risposta
Una richiesta riuscita per aggiungere o rimuovere un dispositivo restituisce una notification_key come la seguente:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Chiavi di gestione dei gruppi di dispositivi
La seguente tabella elenca le chiavi per la creazione di gruppi di dispositivi e l'aggiunta e la rimozione di membri.
| 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 (tranne per l'operazione create, stringa) |
Identificatore univoco del gruppo di dispositivi. Questo valore viene restituito nella risposta per un'operazione create riuscita ed è obbligatorio 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. |
Inviare messaggi ai gruppi di dispositivi
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 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