La messaggistica di gruppo di dispositivi consente di aggiungere più dispositivi a un singolo gruppo. È simile alla messaggistica degli argomenti, 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 modelli di telefono diversi, 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 prevede 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:
Ottieni token di registrazione per ciascun dispositivo che desideri aggiungere al gruppo.
Crea
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. È possibile creare chiavi di notifica sul server delle applicazioni.
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 tramite l'API HTTP v1, utilizzando token di breve durata per autorizzare le richieste di invio . Vedi Chiavi di gestione del gruppo di dispositivi per un elenco delle chiavi supportate.
Gestione dei gruppi di dispositivi sul server delle applicazioni
Creazione di un gruppo di dispositivi
Per creare un gruppo di dispositivi, inviare 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...", ... ]
notification_key_name
è un nome o un identificatore (ad esempio, può essere 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 disponi di più app client per lo stesso ID mittente . Ciò garantisce che i messaggi arrivino solo all'app di destinazione prevista.
Formato della risposta
Una richiesta riuscita restituisce una notification_key
come la seguente:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Salvare notification_key
e notification_key_name
corrispondente 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
o 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...
ad appUser-Chris
, dovresti 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 un notification_key
come il seguente:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Chiavi di gestione del gruppo di dispositivi
Nella tabella seguente sono elencate le chiavi per creare gruppi di dispositivi e aggiungere e rimuovere 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 (ad eccezione dell'operazione create , string | Identificatore univoco del gruppo di dispositivi. Questo valore viene restituito nella risposta per un'operazione create riuscita ed è richiesto 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 attualmente invii a gruppi di dispositivi utilizzando le API di invio legacy deprecate per HTTP o XMPP o una qualsiasi delle versioni precedenti di Firebase Admin SDK per Node.js basata sui protocolli legacy, ti consigliamo vivamente di eseguire la migrazione a HTTP v1 API il prima possibile. Le API di invio legacy verranno disabilitate e rimosse nel 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 del 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 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