La messagerie de groupe d'appareils vous permet d'ajouter plusieurs appareils à un seul groupe. Ceci est similaire à la messagerie thématique, mais inclut une authentification pour garantir que l'appartenance au groupe est gérée uniquement par vos serveurs. Par exemple, si vous souhaitez envoyer différents messages à différents modèles de téléphones, vos serveurs peuvent ajouter/supprimer des inscriptions aux groupes appropriés et envoyer le message approprié à chaque groupe. La messagerie de groupe d'appareils diffère de la messagerie thématique dans la mesure où elle implique la gestion des groupes d'appareils à partir de vos serveurs plutôt que directement au sein de votre application.
Le nombre maximum de membres autorisés pour une clé de notification est de 20.
Gestion des groupes de périphériques
Avant d'envoyer des messages à un groupe d'appareils, vous devez :
Obtenez des jetons d'enregistrement pour chaque appareil que vous souhaitez ajouter au groupe.
Créez le
notification_key
, qui identifie le groupe de périphériques en mappant un groupe particulier (généralement un utilisateur) à tous les jetons d'enregistrement associés au groupe. Vous pouvez créer des clés de notification sur le serveur d'applications.
La gestion de base des groupes de périphériques (création et suppression de groupes, ainsi que ajout ou suppression de périphériques) est effectuée via l'API HTTP v1, à l'aide de jetons de courte durée pour autoriser les demandes d'envoi . Voir Clés de gestion des groupes de périphériques pour obtenir la liste des clés prises en charge.
Gestion des groupes d'appareils sur le serveur d'applications
Création d'un groupe de périphériques
Pour créer un groupe d'appareils, envoyez une requête POST qui fournit un nom pour le groupe et une liste de jetons d'enregistrement pour les appareils. FCM renvoie une nouvelle notification_key
qui représente le groupe de périphériques.
Requête HTTP POST
Envoyez une demande comme celle-ci à 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...", ... ]
Le notification_key_name
est un nom ou un identifiant (par exemple, il peut s'agir d'un nom d'utilisateur) unique à un groupe donné. Les notification_key_name
et notification_key
sont uniques à un groupe de jetons d'enregistrement. Il est important que notification_key_name
soit unique par application client si vous disposez de plusieurs applications client pour le même ID d'expéditeur . Cela garantit que les messages sont envoyés uniquement à l'application cible prévue.
Format de réponse
Une requête réussie renvoie une notification_key
comme suit :
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Enregistrez la notification_key
et le notification_key_name
correspondant à utiliser dans les opérations ultérieures.
Récupérer une clé de notification
Si vous devez récupérer une clé de notification existante, utilisez notification_key_name
dans une requête GET comme indiqué :
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 {}
Pour chaque requête GET pour un nom de clé de notification donné, le serveur renvoie une chaîne codée unique. Bien que chaque chaîne puisse sembler être une clé différente, il s'agit en fait d'une valeur `notification_key` valide.
Ajout et suppression de périphériques d'un groupe de périphériques
Pour ajouter ou supprimer des appareils d'un groupe existant, envoyez une requête POST avec le paramètre operation
défini sur add
ou remove
et fournissez les jetons d'enregistrement pour l'ajout ou la suppression.
Requête HTTP POST
Par exemple, pour ajouter un appareil avec le jeton d'enregistrement bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
à appUser-Chris
, vous devez envoyer cette requête :
{
"operation": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Format de réponse
Une demande réussie d'ajout ou de suppression d'un appareil renvoie une notification_key
comme celle-ci :
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Clés de gestion des groupes de périphériques
Le tableau suivant répertorie les clés permettant de créer des groupes de périphériques et d'ajouter et de supprimer des membres.
Tableau 10. Clés de gestion des groupes de périphériques.
Paramètre | Usage | Description |
---|---|---|
operation | Obligatoire, chaîne | L'opération à exécuter. Les valeurs valides sont create , add et remove . |
notification_key_name | Obligatoire, chaîne | Nom défini par l'utilisateur du groupe de périphériques à créer ou à modifier. |
notification_key | Obligatoire (sauf pour l'opération create , chaîne | Identifiant unique du groupe de périphériques. Cette valeur est renvoyée dans la réponse pour une opération create réussie et est requise pour toutes les opérations ultérieures sur le groupe de périphériques. |
registration_ids | Obligatoire, tableau de chaînes | Les jetons de périphérique à ajouter ou à supprimer. Si vous supprimez tous les jetons d'enregistrement existants d'un groupe de périphériques, FCM supprime le groupe de périphériques. |
Envoi de messages à des groupes d'appareils
Pour envoyer des messages à des groupes d'appareils, utilisez l'API HTTP v1. Si vous envoyez actuellement à des groupes d'appareils à l'aide des anciennes API d'envoi obsolètes pour HTTP ou XMPP, ou de l'une des anciennes versions du SDK d'administration Firebase pour Node.js basées sur les anciens protocoles, nous vous recommandons fortement de migrer vers HTTP v1. API dans les plus brefs délais. Les anciennes API d'envoi seront désactivées et supprimées en juin 2024.
L'envoi de messages à un groupe d'appareils est très similaire à l'envoi de messages à un appareil individuel, en utilisant la même méthode pour autoriser les demandes d'envoi . Définissez le champ token
sur la clé de notification de groupe :
REPOS
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!"
}
}
}
commande 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