Types de notifications
Ajouter un message et envoyer une notification
Contexte
Une fois qu'un utilisateur a ajouté une carte, vous pouvez lui envoyer un message à son sujet et vous assurer qu'il en est informé. En utilisant la requête API Add Message avec un message_type
égal à TEXT_AND_NOTIFY
, le résultat est le suivant:
- Un élément Message est ajouté au "dos de la carte" (également appelé Template Details) et une notification push est envoyée aux utilisateurs avec la carte enregistrée.
- Lorsque l'utilisateur appuie sur la notification, Google Wallet s'ouvre sur la face avant de la carte (vue de la carte). Un encadré s'affiche en haut de l'écran avec un bouton "Afficher le message".
- En cliquant sur le callout, les utilisateurs sont redirigés vers l'arrière de la carte, où les nouveaux messages non lus sont mis en évidence.
Éléments à prendre en compte lorsque vous envoyez des messages avec des notifications aux utilisateurs
- Les utilisateurs doivent avoir activé les notifications pour leurs cartes afin de recevoir les notifications push liées aux messages.
- Les messages peuvent contenir des URI vers votre site Web ou votre application. Les liens hypertextes doivent être des sites Web ou des applications associés à la carte. L'envoi d'utilisateurs vers des liens sans rapport avec la carte est contraire au Règlement sur l'utilisation autorisée.
- Vous pouvez envoyer un maximum de trois messages déclenchant une notification push sur une période de 24 heures. Google peut limiter votre quota d'envoi de notifications push s'il estime que vous envoyez du spam à vos utilisateurs.
- La notification push que les utilisateurs voient sur leur écran de verrouillage est contrôlée par Google Wallet.
- Vous pouvez utiliser les méthodes UPDATE ou PATCH pour modifier ou supprimer les données de message à l'aide du point de terminaison de classe ou d'objet standard.
Procédure d'intégration
Lorsque vous souhaitez avertir les utilisateurs d'un nouveau message de l'émetteur ajouté à l'aide de l'API AddMessage, vous devez mettre à jour AddMessageRequest afin que le Message contenant votre nouveau texte ait la valeur MessageType TEXT_AND_NOTIFY au lieu de TEXT.
Exemple de requête JSON pour ajouter un message et une notification dans une classe de cartes
… "id": ISSUER_ID.CLASS_ID", "message": { "header":"My Class message header", "body": "My Class message body with a <a href="https://wallet.google">Hyperlink<\a>", "id": "message_id", "message_type": "TEXT_AND_NOTIFY" }, …
Exemple de requête JSON pour ajouter un message et une notification dans un objet "Passes"
… "id": OBJECT_ID", "classId": "ISSUER_ID.CLASS_ID", "message": { "header":"My Object message header", "body": "My Object message body with a <a href="http://play.google.com/store/apps/details?id=com.google.android.apps.maps">Hyperlink<\a>", "id": "message_id", "message_type": "TEXT_AND_NOTIFY" }, …
Exemple de réponse pour ajouter un message et envoyer une notification pour une classe de carte
// The updated resource … { "kind": "walletobjects#walletObjectMessage", "header": "My Object message header", "body": "My Object message body with a <a href="http://play.google.com/store/apps/details?id=com.google.android.apps.maps">Hyperlink<\a>", "id": "message_id", "messageType": "textAndNotify" }, …
Gestion des exceptions
Toute tentative de notification supérieure à trois fois génère une réponse QuotaExceededException . Toute autre mise à jour de la carte peut être définie à l'aide de TEXT au lieu de TEXT_AND_NOTIFY, comme indiqué dans la section Étapes d'intégration.
Mettre à jour le champ et envoyer une notification
Contexte
Une fois qu'un utilisateur a ajouté une carte, vous pouvez déclencher une notification push lorsque vous modifiez certains champs. La notification s'affiche sur l'écran de verrouillage de l'utilisateur et l'informe qu'une mise à jour est disponible pour sa carte. Cette notification ne se déclenche que pour un sous-ensemble spécifique de champs définis ci-dessous à l'aide des méthodes d'API UPDATE et PATCH. Une fois un appel d'API effectué pour mettre à jour la carte, ce qui suit se produit:
- Une notification push est déclenchée et s'affiche sur l'écran de verrouillage de l'utilisateur pour l'informer de la mise à jour d'une carte.
- Une fois que l'utilisateur appuie sur la notification, Google Wallet s'ouvre sur la face avant de la carte (vue "Carte"). Un encadré s'affiche en haut de l'écran avec un bouton "Examiner la mise à jour".
- Cliquer sur le bouton permet à l'utilisateur d'accéder à un écran où il peut voir les champs modifiés par la mise à jour.
Éléments à prendre en compte lors de l'envoi de notifications de mise à jour de champ
- Les utilisateurs doivent avoir activé les notifications pour leurs cartes afin de recevoir les notifications push liées aux mises à jour.
- Vous pouvez envoyer un maximum de trois mises à jour qui déclenchent une notification push sur une période de 24 heures. Google peut limiter votre quota d'envoi de notifications push s'il estime que vous envoyez du spam à vos utilisateurs.
- La notification push que les utilisateurs voient sur leur écran de verrouillage est contrôlée par Google Wallet.
- Le champ
notifyPreference
est un champ temporaire qui ne vit que dans cette requête. Pour les futures requêtes lorsque vous souhaitez déclencher une notification, vous devrez réinitialiser ce champ dans la requête de classe ou d'objet.
Procédure d'intégration
Pour déclencher ces notifications, vous devez utiliser les appels UPDATE ou PATCH existants et spécifier notifyPreference. Lorsque vous mettez à jour un champ d'une classe ou d'un objet, vous pouvez ajouter un champ, notifyPreference
, à la requête de classe ou d'objet pour déclencher la notification.
Exemple de requête JSON pour mettre à jour et envoyer une notification dans une classe
… "dateTime": { "kind": "walletobjects#eventDateTime", "doorsOpen": "2024-09-23T19:20:50.00" }, "multipleDevicesAndHoldersAllowedStatus": "multipleHolders", "notifyPreference": "notifyOnUpdate", …
Définir notifyPreference
sur notifyOnUpdate
déclenche une notification, à condition que le champ mis à jour soit actuellement compatible.
Champs pris en charge
LoyaltyClass
- rewardsTier
- secondaryRewardsTier
- programName
LoyaltyObject
- loyaltyPoints.balance
- secondaryLoyaltyPoints.balance