La messagerie de groupe d'appareils vous permet d'ajouter plusieurs appareils à un même groupe. Cette fonctionnalité est semblable à la messagerie par thèmes, mais elle inclut l'authentification pour s'assurer que l'appartenance au groupe n'est gérée que par vos serveurs.
Par exemple, si vous souhaitez envoyer des messages différents à différents modèles de téléphone, vos serveurs peuvent ajouter ou supprimer des enregistrements dans les groupes appropriés et envoyer le message approprié à chaque groupe. La messagerie de groupe d'appareils diffère de la messagerie par thème, car elle implique la gestion des groupes d'appareils à partir de vos serveurs plutôt que directement dans votre application.
Le nombre maximal de membres autorisé pour une clé de notification est de 20.
Gérer les groupes d'appareils
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 l'élément
notification_key, qui identifie le groupe d'appareils 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 d'appareils (création et suppression de groupes, et ajout ou suppression d'appareils) s'effectue à l'aide de l'API HTTP v1, en utilisant des jetons de courte durée pour autoriser les requêtes d'envoi. Consultez la section Clés de gestion des groupes d'appareils pour obtenir la liste des clés compatibles.
Gérer les groupes d'appareils sur le serveur d'applications
Créer un groupe d'appareils
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 un nouvel objet notification_key qui représente le groupe d'appareils.
Requête HTTP POST
Envoyez une requête semblable à la suivante à 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 est un nom ou un identifiant (par exemple, un nom d'utilisateur) unique pour un groupe donné. notification_key_name et notification_key sont uniques pour un groupe de jetons d'enregistrement. Il est important que notification_key_name soit unique par application cliente si vous avez plusieurs applications clientes pour le même ID d'expéditeur.
Cela garantit que les messages ne sont envoyés qu'à l'application cible prévue.
Format de réponse
Une requête réussie renvoie un notification_key semblable à celui-ci :
{
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}
Enregistrez le notification_key et le notification_key_name correspondant pour les 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é ci-dessous :
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 encodée unique. Bien que chaque chaîne puisse sembler être une clé différente, il s'agit en réalité d'une valeur notification_key valide.
Récupération de FCM jetons pour les groupes d'appareils…
Si vous devez récupérer des jetons FCM appartenant à un groupe d'appareils, utilisez notification_key dans une requête GET, comme indiqué ci-dessous :
https://fcm.googleapis.com/fcm/notification?notification_key=APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ
Content-Type:application/json
access_token_auth: true
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
project_id:SENDER_ID
{}
La réponse est semblable à ce qui suit :
{
"notification_key_name": "appUser-Chris",
"registration_ids": ["token1", "token2"]
}
Ajouter et supprimer des appareils d'un groupe d'appareils
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 la requête suivante :
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..."]
}
Format de réponse
Une requête d'ajout ou de suppression d'un appareil qui aboutit renvoie un notification_key semblable à celui-ci :
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Clés de gestion des groupes d'appareils
Le tableau suivant liste les clés permettant de créer des groupes d'appareils, et d'ajouter et de supprimer des membres.
| Paramètre | Utilisation | Description |
|---|---|---|
operation |
Obligatoire, chaîne | 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 d'appareils à créer ou à modifier. |
notification_key |
Obligatoire (sauf pour l'opération create, chaîne) |
Identifiant unique du groupe d'appareils. Cette valeur est renvoyée dans la réponse d'une opération create réussie et est requise pour toutes les opérations ultérieures sur le groupe d'appareils. |
registration_ids |
Obligatoire, tableau de chaînes | Jetons d'appareil à ajouter ou à supprimer. Si vous supprimez tous les jetons d'enregistrement existants d'un groupe d'appareils, FCM supprime le groupe d'appareils. |
Envoyer des messages à des groupes d'appareils
L'envoi de messages à un groupe d'appareils est très semblable à l'envoi de messages à un appareil individuel, en utilisant la même méthode pour autoriser les requêtes d'envoi.
Définissez le champ token sur la clé de notification de groupe :
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!"
}
}
}
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