Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Publication avec des charges utiles spécifiques à la plate-forme
Vous pouvez utiliser les API AWS Management Console ou Amazon SNS pour envoyer des messages personnalisés avec des charges utiles spécifiques à la plate-forme vers des appareils mobiles. Pour plus d'informations sur l'utilisation des API Amazon SNS, consultez l'Actions d'API push mobile et le fichier SNSMobilePush.java
dans snsmobilepush.zip
.
Rubriques
- Envoi de messages au format JSON
- Envoi de messages propres à une plateforme
- Envoi de messages à une application sur plusieurs plateformes
- Envoi de messages à APNs en tant qu'alertes ou notifications en arrière-plan
- Utilisation des charges utiles de Google Firebase Cloud Messaging (FCM) v1 dans Amazon SNS
Envoi de messages au format JSON
Lors de l'envoi de charges utiles propres à une plateforme, les données doivent être formatées en tant que chaînes de paire valeur clé JSON, avec les guillemets dans une séquence d'échappement.
Les exemples suivants montrent un message personnalisé pour la plateforme FCM.
{ "GCM": "{\"fcmV1Message\": {\"message\": {\"notification\": {\"title\": \"Hello\", \"body\": \"This is a test.\"}, \"data\": {\"dataKey\": \"example\"}}}}" }
Envoi de messages propres à une plateforme
En plus d'envoyer des données personnalisées en tant que paires valeur clé, vous pouvez envoyer des paires valeur clé propres à une plateforme.
L'exemple suivant illustre l'inclusion des paramètres FCM time_to_live
et collapse_key
après les paires valeur clé de données personnalisées dans le paramètre FCM data
.
{ "GCM": "{\"fcmV1Message\": {\"message\": {\"notification\": {\"title\": \"TitleTest\", \"body\": \"Sample message for Android or iOS endpoints.\"}, \"data\":{\"time_to_live\": 3600,\"collapse_key\":\"deals\"}}}}" }
Pour une liste des paires valeur clé prises en charge dans chacun des services de notification push pris en charge dans Amazon SNS, consultez les liens suivants :
Important
Amazon SNS prend désormais en charge l'API HTTP v1 de Firebase Cloud Messaging (FCM) pour envoyer des notifications push mobiles aux appareils Android.
26 mars 2024 — Amazon SNS prend en charge l'API FCM HTTP v1 pour les appareils Apple et les destinations Webpush. Nous vous recommandons de migrer vos applications push mobiles existantes vers la dernière API HTTP v1 de FCM au plus tard le 1er juin 2024 afin d'éviter toute interruption des applications.
-
Référence des clés de charge utile
dans la documentation APNs -
Protocole HTTP de Firebase Cloud Messaging
dans la documentation FCM -
Envoi d'un message
dans la documentation ADM
Envoi de messages à une application sur plusieurs plateformes
Pour envoyer un message à une application installée sur les appareils de plusieurs plateformes, comme FCM et APNs, vous devez commencer par abonner les points de terminaison mobiles à une rubrique dans Amazon SNS, puis publier le message dans la rubrique.
L'exemple suivant montre un message à envoyer aux points de terminaison mobiles abonnés sur APNs, FCM et ADM :
{ "default": "This is the default message which must be present when publishing a message to a topic. The default message will only be used if a message is not present for one of the notification platforms.", "APNS": "{\"aps\":{\"alert\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\"} }", "GCM": "{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}", "ADM": "{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}" }
Envoi de messages à APNs en tant qu'alertes ou notifications en arrière-plan
Amazon SNS peut envoyer des messages à APNs en tant que notifications alert
ou background
(pour plus d'informations, reportez-vous à la section Transmettre les mises à jour en arrière-plan à votre application
-
Une notification APNs d'
alert
informe l'utilisateur en affichant un message d'alerte, en émettant un avertissement sonore ou en ajoutant un badge à l'icône de votre application. -
Une notification APNs d'
background
réveille votre application ou lui indique d'agir sur le contenu de la notification, sans en informer l'utilisateur.
Spécification des valeurs d'en-tête APNs personnalisées
Nous vous recommandons de spécifier des valeurs personnalisées pour l'attribut de message AWS.SNS.MOBILE.APNS.PUSH_TYPE réservé à l'aide de l'action d'Publish
API Amazon SNS, AWS des SDK ou du. AWS CLI L'exemple DE CLI suivant définit content-available
pour 1
et apns-push-type
background
pour la rubrique spécifiée.
aws sns publish \ --endpoint-url https://sns.us-east-1.amazonaws.com \ --target-arn arn:aws:sns:us-east-1:123456789012:endpoint/APNS_PLATFORM/MYAPP/1234a567-bc89-012d-3e45-6fg7h890123i \ --message '{"APNS_PLATFORM":"{\"aps\":{\"content-available\":1}}"}' \ --message-attributes '{ \ "AWS.SNS.MOBILE.APNS.TOPIC":{"DataType":"String","StringValue":"com.amazon.mobile.messaging.myapp"}, \ "AWS.SNS.MOBILE.APNS.PUSH_TYPE":{"DataType":"String","StringValue":"background"} \ "AWS.SNS.MOBILE.APNS.PRIORITY":{"DataType":"String","StringValue":"5"}}', \ --message-structure json
Inférence de l'en-tête de type push APNs à partir de la charge utile
Si vous ne définissez pas l'en-tête APNs apns-push-type
, Amazon SNS définit l'en-tête sur alert
ou background
en fonction de la clé content-available
dans le dictionnaire aps
de votre configuration de charge utile APNs au format JSON.
Note
Amazon SNS est capable de déduire uniquement les en-têtes alert
ou background
, bien que l'en-tête apns-push-type
puisse être défini sur d'autres valeurs.
-
apns-push-type
a la valeuralert
-
Si le
aps
dictionnaire contientcontent-available
défini sur1
et une ou plusieurs clés qui déclenchent des interactions utilisateur. -
Si le dictionnaire
aps
contientcontent-available
défini sur0
ou si la clécontent-available
est absente. -
Si la valeur de la clé
content-available
n'est pas un entier ou un booléen.
-
-
apns-push-type
a la valeurbackground
-
Si le dictionnaire
aps
contient uniquement la valeurcontent-available
définie sur1
et aucune clé qui déclenchent des interactions utilisateur.Important
Si Amazon SNS envoie un objet de configuration brut pour APNs en tant que notification en arrière-plan uniquement, vous devez inclure
content-available
défini sur1
dans le dictionnaireaps
. Bien que vous puissiez inclure des clés personnalisées, le dictionnaireaps
ne doit contenir aucune clé qui déclenche des interactions utilisateur (par exemple, des alertes, des badges ou des sons).
-
Voici un exemple d'objet de configuration brut.
{ "APNS": "{\"aps\":{\"content-available\":1},\"Foo1\":\"Bar\",\"Foo2\":123}" }
Dans cet exemple, Amazon SNS définit l'en-tête APNs apns-push-type
sur background
pour le message. Lorsqu'Amazon SNS détecte que le dictionnaire apn
contient la clé content-available
définie sur 1
et ne contient aucune autre clé pouvant déclencher des interactions utilisateur, il définit l'en-tête sur background
.