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 consentito per una chiave di notifica è 20.
Gestione dei gruppi di dispositivi
Prima di inviare messaggi a un gruppo di dispositivi, devi:
-
Ottieni i token di registrazione per ogni dispositivo che vuoi aggiungere al gruppo.
-
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 delle app.
Gestione di base di gruppi di dispositivi, creazione e rimozione di gruppi, e l'aggiunta o la rimozione di dispositivi, viene eseguita tramite l'API HTTP v1, utilizzando token di breve durata autorizzare le richieste di invio. 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 esempio può essere un nome utente) univoco di un determinato gruppo. La
notification_key_name
e
notification_key
sono univoci per un gruppo di registrazioni
di token. È importante che notification_key_name
sia
univoca per app client se hai più app client per la stessa app
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 una richiesta POST con il parametro operation
impostato su add
o remove
e fornisci 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
, invia 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 seguente tabella elenca le chiavi per la creazione di gruppi di dispositivi nonché l'aggiunta e la rimozione di membri.
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 (ad eccezione dell'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 tutte le estensioni esistenti di registrazione da un gruppo di dispositivi, FCM elimina il gruppo di dispositivi. |
Invio di messaggi a gruppi di dispositivi
Per inviare messaggi a gruppi di dispositivi, utilizza l'API HTTP v1. Se attualmente l'invio a gruppi di dispositivi utilizzando le API di invio precedenti deprecate per HTTP o XMPP o qualsiasi versione precedente del Firebase Admin SDK per Node.js basati sui protocolli precedenti, consigliamo vivamente di eseguire la migrazione all'API HTTP v1 il prima possibile. 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 upstream a gruppi di dispositivi
Per inviare messaggi upstream a gruppi di dispositivi sulle app Apple, il client Apple l'app deve implementare FIRMessaging.sendMessage:
(void)sendMessage:(nonnull NSDictionary *)message to:(nonnull NSString *)receiver withMessageID:(nonnull NSString *)messageID timeToLive:(int64_t)ttl;