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 même groupe. Cette méthode est semblable à la messagerie par sujet, mais inclut une authentification pour s'assurer que l'appartenance au groupe n'est gérée que 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:

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

  2. Créez le notification_key, qui identifie le groupe d'appareils en mappant un groupe particulier (généralement utilisateur) à tous les jetons d'enregistrement associés au groupe. Vous pouvez créer des clés de notification sur le serveur d'applications.

Gestion de base des groupes d'appareils : création et suppression de groupes, et l'ajout ou la suppression d'appareils, s'effectue via l'API HTTP v1, à l'aide de jetons de courte durée pour autoriser les demandes d'envoi. 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 POST HTTP

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...",
                        ... ]

L'notification_key_name est un nom ou un identifiant (par exemple, il peut s'agir d'un nom d'utilisateur) unique à un groupe donné. La notification_key_name et Les notification_key sont propres à un groupe d'inscriptions de jetons. 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 envoyés qu'à l'application cible prévue.

Format de réponse

Une requête réussie renvoie un notification_key comme les éléments suivants:

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

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

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 peut 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 des appareils à un groupe existant ou en supprimer, envoyez une requête POST requête avec le paramètre operation défini sur add ou remove, et indiquez la valeur des 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 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 de groupe d'appareils

Le tableau suivant répertorie les clés pour créer des groupes d'appareils. l'ajout et la suppression de membres.

Tableau 10. Clés de gestion de groupe d'appareils.

Paramètre Utilisation 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 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 si la requête create aboutit opération, 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 fichiers existants d'enregistrement d'un groupe d'appareils, FCM supprime le groupe d'appareils.

Envoyer des messages à 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

Pour envoyer des messages en amont à des groupes d'appareils dans des 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;