Vous pouvez utiliser la sous-API Notifications pour recevoir des notifications push lorsque des données changent dans vos comptes Merchant Center. Au lieu d'interroger régulièrement l'API pour détecter les modifications, vous pouvez vous abonner à des flux d'événements en temps réel qui sont envoyés directement à un point de terminaison HTTPS que vous configurez.
La sous-API Notifications est compatible avec les notifications suivantes :
- Modifications de l'état des produits : recevez des alertes en temps réel lorsque l'état d'approbation d'un produit change (par exemple, lorsqu'un produit est refusé ou approuvé) dans l'un de vos comptes ou sous-comptes associés.
- Modifications apportées aux services de compte : recevez des alertes en temps réel lorsqu'une ressource
AccountServiceest créée, mise à jour ou supprimée (par exemple, lorsqu'une relation de service de compte est établie, modifiée ou supprimée).
Prérequis et configuration de l'URI de rappel
Pour recevoir des notifications push, vous devez fournir un callBackUri. Votre URI de rappel doit répondre aux exigences suivantes :
- Il doit s'agir d'une adresse HTTPS accessible publiquement avec un certificat SSL valide signé par une autorité de certification reconnue.
- Doit accepter les requêtes HTTP
POSTavec l'en-têteContent-Typedéfini surapplication/json. Doit renvoyer l'un des codes d'état HTTP suivants pour confirmer la réception de la notification :
102200201202204
Vous pouvez utiliser le même URI de rappel pour plusieurs abonnements. Pour minimiser la charge sur un point de terminaison unique, utilisez un URI de rappel unique par compte avancé et par type d'événement.
Gérer les abonnements
La sous-API Notifications fournit des méthodes permettant de créer, lister, récupérer, mettre à jour et supprimer des configurations de notifications.
Créer un abonnement
La création d'un abonnement est spécifique au type d'événement que vous souhaitez recevoir. Chaque type d'événement nécessite des champs de configuration différents et fournit des structures de charge utile distinctes.
Pour savoir comment créer des abonnements et afficher des exemples de requêtes pour chaque type d'événement, consultez les guides correspondants :
- S'abonner aux changements d'état des produits
- S'abonner aux modifications apportées aux services de compte
Répertorier les abonnements
Pour lister tous les abonnements aux notifications d'un compte, envoyez une requête GET à la collection notificationsubscriptions :
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions
Récupérer un abonnement
Pour obtenir des informations sur un abonnement spécifique, utilisez le nom de ressource de l'abonnement :
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Mettre à jour un abonnement
Pour mettre à jour l'URI de rappel d'un abonnement existant, envoyez une requête PATCH avec un update_mask spécifiant les champs à mettre à jour :
PATCH https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}?update_mask=callBackUri
{
"callBackUri": "https://example.com/updated-callback"
}
Supprimer un abonnement
Pour ne plus recevoir de notifications, supprimez l'abonnement :
DELETE https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Décoder les notifications
Lorsqu'un événement se produit, Google envoie une notification à votre callBackUri enregistré. La notification push arrive dans une enveloppe JSON avec une charge utile data encodée en base64 :
{"message":{"data":"{base64_encoded_string}"}}
Décodez la chaîne de données pour accéder à la charge utile de l'événement JSON. L'exemple de contrôleur Spring Boot suivant montre comment recevoir et décoder les notifications push :
@RestController
public class ExampleController {
@RequestMapping(value = "/push",
method = RequestMethod.POST,
consumes = {"application/json"},
produces = {"text/plain"})
@ResponseStatus(HttpStatus.OK)
public void handleNotification(@RequestBody String message) {
JSONObject jsonObject = new JSONObject(message);
JSONObject jsonMessage = jsonObject.getJSONObject("message");
String encodedData = jsonMessage.getString("data");
byte[] decodedBytes = Base64.getDecoder().decode(encodedData);
String decodedPayload = new String(decodedBytes);
// Process decodedPayload according to the registered event type
}
}
Étapes suivantes
Pour configurer des abonnements et gérer les charges utiles décodées pour des événements spécifiques, consultez les ressources suivantes :
- Recevoir des notifications push pour les changements d'état des produits : découvrez comment vous abonner aux notifications d'approbation et de refus des produits, et comment analyser la charge utile
ProductStatusChangeMessage. - Recevoir des notifications push pour les modifications apportées aux services de compte : découvrez comment vous abonner aux mises à jour des relations de compte et analyser la charge utile
ResourceChangeMessage.