Catch up on highlights from Firebase at Google I/O 2023. Learn more

Envoyer des messages à des groupes d'appareils sur les plates-formes Apple

La messagerie de groupe d'appareils vous permet d'ajouter plusieurs appareils à un seul groupe. Ceci est similaire à la messagerie de sujet, mais inclut l'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éphone, vos serveurs peuvent ajouter/supprimer des enregistrements aux groupes appropriés et envoyer le message approprié à chaque groupe. La messagerie de groupe d'appareils diffère de la messagerie de rubrique en ce sens qu'elle implique la gestion des groupes d'appareils à partir de vos serveurs plutôt que directement dans votre application.

Le nombre maximum de membres autorisés pour une clé de notification est de 20.

Gestion des groupes d'appareils

Avant d'envoyer des messages à un groupe d'appareils, vous devez :

  1. Obtenez des jetons d'enregistrement pour chaque appareil que vous souhaitez ajouter au groupe.

  2. Créez la 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'application.

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 demandes . Voir Clés de gestion de groupe d'appareils pour une liste des clés prises en charge.

Gestion des groupes d'appareils sur le serveur d'applications

Création d'un groupe d'appareils

Pour créer un groupe de périphériques, envoyez une demande POST qui fournit un nom pour le groupe et une liste de jetons d'enregistrement pour les périphériques. FCM renvoie une nouvelle notification_key qui représente le groupe d'appareils.

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) qui est unique pour un groupe donné. 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 cliente si vous avez plusieurs applications clientes pour le même ID d'expéditeur . Cela garantit que les messages ne parviennent qu'à l'application cible prévue.

Format de réponse

Une requête réussie renvoie une notification_key comme celle-ci :

{
   "notification_key": "APA91bGHXQBB...9QgnYOEURwm0I3lmyqzk2TXQ"
}

Enregistrez la notification_key et le notification_key_name correspondant à utiliser dans les opérations suivantes.

Récupérer une clé de notification

Si vous avez besoin de récupérer une clé de notification existante, utilisez le 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.

Ajouter et supprimer des appareils d'un groupe d'appareils

Pour ajouter ou supprimer des périphériques d'un groupe existant, envoyez une demande 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 enverriez 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 d'appareils

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 Le 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 Identificateur unique du groupe d'appareils. Cette valeur est renvoyée dans la réponse pour une opération create réussie et est requise pour toutes les opérations suivantes sur le groupe de périphériques.
registration_ids Obligatoire, tableau de chaînes Les jetons d'appareil à 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 aux groupes d'appareils, utilisez l'API HTTP v1. Si vous effectuez actuellement des envois vers 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 vivement de migrer vers HTTP v1 API à la première occasion. 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

Envoi de messages en amont à des groupes d'appareils

Pour envoyer des messages en amont aux groupes d'appareils sur les applications Apple, l'application cliente Apple doit implémenter FIRMessaging.sendMessage :

(void)sendMessage:(nonnull NSDictionary *)message
     to:(nonnull NSString *)receiver
withMessageID:(nonnull NSString *)messageID
timeToLive:(int64_t)ttl;