Puedes usar la sub-API de notificaciones para recibir notificaciones push cuando cambien los datos en tus cuentas de Merchant Center. En lugar de sondear periódicamente la API para detectar cambios, puedes suscribirte a feeds de eventos en tiempo real que se envían directamente a un extremo HTTPS que configures.
La API secundaria de notificaciones admite notificaciones para lo siguiente:
- Cambios en el estado del producto: Recibe alertas en tiempo real cuando cambie el estado de aprobación de un producto (por ejemplo, cuando se rechace o apruebe un producto) en cualquiera de tus cuentas o cuentas secundarias vinculadas.
- Cambios en el servicio de la cuenta:
Recibe alertas en tiempo real cuando se crea,
actualiza o borra un recurso
AccountService(como cuando se establece, modifica o quita una relación de servicio de la cuenta).
Requisitos previos y configuración del URI de devolución de llamada
Para recibir notificaciones push, debes proporcionar un callBackUri. El URI de devolución de llamada
debe cumplir con los siguientes requisitos:
- Debe ser una dirección HTTPS de acceso público con un certificado SSL válido firmado por una autoridad certificadora reconocida.
- Debe aceptar solicitudes HTTP
POSTcon el encabezadoContent-Typeestablecido enapplication/json. Debe devolver uno de los siguientes códigos de estado HTTP para confirmar que se recibió la notificación:
102200201202204
Puedes usar el mismo URI de devolución de llamada para varias suscripciones. Para minimizar la carga en un solo extremo, usa un URI de devolución de llamada único por cuenta avanzada y tipo de evento.
Administrar las suscripciones
La sub-API de notificaciones proporciona métodos para crear, enumerar, recuperar, actualizar y borrar parámetros de configuración de notificaciones.
Crea una suscripción
La creación de suscripciones es específica del tipo de evento que quieres recibir. Cada tipo de evento requiere diferentes campos de configuración y entrega distintas estructuras de carga útil.
Para aprender a crear suscripciones y ver solicitudes de muestra para cada tipo de evento, consulta las guías correspondientes:
- Suscríbete a los cambios de estado de los productos
- Cómo suscribirse a los cambios en el servicio de cuentas
Enumerar suscripciones
Para enumerar todas las suscripciones a notificaciones de una cuenta, envía una solicitud GET a
la colección notificationsubscriptions:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions
Cómo recuperar una suscripción
Para obtener detalles de una suscripción específica, usa el nombre del recurso de la suscripción:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Actualiza una suscripción
Para actualizar el URI de devolución de llamada de una suscripción existente, envía una solicitud PATCH
con un update_mask que especifique los campos que se actualizarán:
PATCH https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}?update_mask=callBackUri
{
"callBackUri": "https://example.com/updated-callback"
}
Borra una suscripción
Para dejar de recibir notificaciones, borra la suscripción:
DELETE https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Decodifica notificaciones
Cuando se produce un evento, Google envía una notificación a tu callBackUri
registrado. La notificación push llega en un sobre JSON con una
carga útil de data codificada en Base64:
{"message":{"data":"{base64_encoded_string}"}}
Decodifica la cadena de datos para acceder a la carga útil del evento JSON. En el siguiente controlador de Spring Boot de muestra, se indica cómo recibir y decodificar notificaciones 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
}
}
Próximos pasos
Para configurar suscripciones y controlar cargas útiles decodificadas para eventos específicos, consulta los siguientes recursos:
- Obtén notificaciones push para los cambios de estado de los productos:
Obtén información para suscribirte a las actualizaciones de aprobación y rechazo de productos, y analizar
la carga útil de
ProductStatusChangeMessage. - Obtén notificaciones push para los cambios en el servicio de la cuenta:
Obtén información para suscribirte a las actualizaciones de la relación de la cuenta y analizar la
carga útil de
ResourceChangeMessage.