La messagerie de groupe d'appareils vous permet d'ajouter plusieurs appareils à un même groupe. Cela est similaire à la messagerie thématique, mais inclut l'authentification pour garantir que l'appartenance à un groupe est gérée uniquement par vos serveurs. Par exemple, si vous souhaitez envoient des messages différents à des modèles de téléphones différents, vos serveurs peuvent ajouter d'inscriptions aux groupes appropriés et d'envoyer le message approprié à chacun groupe. Les messages de groupe d'appareils diffèrent des messages thématiques en ce sens qu'ils impliquent gérer les groupes d'appareils depuis 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 :
-
Obtenir des jetons d'enregistrement pour chaque appareil que vous souhaitez ajouter au groupe.
-
Créez
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) est effectuée via l'API HTTP v1, à l'aide de jetons de courte durée pour autoriser l'envoi de requêtes. Voir <ph type="x-smartling-placeholder"></ph> Clés de gestion de groupe d'appareils pour obtenir la liste des clés compatibles.
Gérer des 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 nouveau notification_key
qui représente le groupe d'appareils.
Requête HTTP POST
Envoyez une requête semblable à 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...", ... ]
notification_key_name
est un nom ou un identifiant (par exemple, un nom d'utilisateur) propre à un groupe donné. notification_key_name
et notification_key
sont propres à un groupe de jetons d'enregistrement. Il est important que notification_key_name
soit
uniques par application cliente si vous en possédez plusieurs pour le même
ID de l'expéditeur.
Cela garantit que les messages ne sont transmis qu'à l'application cible prévue.
Format de réponse
Si la requête aboutit, elle renvoie un notification_key
semblable à celui-ci :
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Enregistrez le notification_key
et les
notification_key_name
à 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 l'
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 fait d'une valeur "notification_key" valide.
Ajouter et supprimer des appareils dans 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 POST HTTP
Par exemple, pour ajouter un appareil avec le jeton d'enregistrement bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...
à appUser-Chris
, vous devez envoyer la requête suivante :
{
"operation": "add",
"notification_key_name": "appUser-Chris",
"notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ",
"registration_ids": ["bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."]
}
Format de la réponse
Une requête réussie d'ajout ou de suppression d'un appareil renvoie une
notification_key
comme suit:
{ "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ" }
Clés de gestion des groupes d'appareils
Le tableau suivant présente 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 , la 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 obligatoire pour toutes les opérations ultérieures sur le groupe d'appareils. |
registration_ids |
Obligatoire, tableau de chaînes | Les jetons d'appareil à ajouter ou à supprimer. Si vous supprimez tous les fichiers existants d'enregistrement d'un groupe d'appareils, FCM supprime le groupe d'appareils. |
Envoyer des messages en aval à des groupes d'appareils
Pour envoyer des messages à des groupes d'appareils, utilisez l'API HTTP v1. Si vous utilisez actuellement l'envoi à des groupes d'appareils à l'aide des anciennes API d'envoi obsolètes pour HTTP ou XMPP, ou toute version plus ancienne du Firebase Admin SDK pour Node.js basé sur les anciens protocoles, nous vous recommandons vivement migrer vers l'API HTTP v1 dès que possible. 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 semblable à l'envoi
à un appareil individuel, en utilisant la même méthode pour
autoriser les demandes d'envoi. Définir l'élément token
à la touche 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
Envoyer des messages en amont à des groupes d'appareils
Les applications clientes peuvent envoyer des messages en amont à des groupes d'appareils en ciblant les messages sur la clé de notification appropriée dans le champ to
.
L'appel suivant à FCM envoie un appel en amont le message à une touche de notification.
Firebase.Messaging.Message message; message.To = notification_key; message.MessageId = a_unique_message_id; message.Data["hello"] = "world"; Firebase.Messaging.FirebaseMessaging.Send(message);