Vous pouvez utiliser la sous-API Notifications pour recevoir des notifications push lorsque des données sont modifiées 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 envoyés directement à un point de terminaison HTTPS que vous configurez.
La sous-API Notifications est compatible avec les notifications pour :
- Changements d'état des produits : recevez des alertes en temps réel lorsqu'un état d'approbation de 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 au service 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 au public 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 réduire la charge sur un seul point de terminaison, 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 pour créer, lister, récupérer, mettre à jour et supprimer des configurations de notification.
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 notifications de changement d'état des produits
- S'abonner aux modifications apportées aux services du 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 des 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 pages 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 analyser la charge utile
ProductStatusChangeMessage. - Recevoir des notifications push pour les modifications apportées au service de compte : découvrez comment vous abonner aux mises à jour de la relation de compte et analyser la charge utile
ResourceChangeMessage.