Puoi utilizzare la sub-API Notifiche per ricevere notifiche push quando i dati cambiano nei tuoi account Merchant Center. Anziché eseguire periodicamente il polling dell'API per rilevare le modifiche, puoi abbonarti ai feed di eventi in tempo reale forniti direttamente a un endpoint HTTPS che configuri.
La sub-API Notifications supporta le notifiche per:
- Modifiche allo stato del prodotto: Ricevi avvisi in tempo reale quando lo stato di approvazione di un prodotto cambia (ad esempio, quando un prodotto viene disapprovato o approvato) in uno qualsiasi dei tuoi account o subaccount collegati.
- Modifiche al servizio account:
Ricevi avvisi in tempo reale quando una risorsa
AccountServiceviene creata, aggiornata o eliminata (ad esempio quando viene stabilita, modificata o rimossa una relazione di servizio account).
Prerequisiti e configurazione dell'URI di callback
Per ricevere notifiche push, devi fornire un callBackUri. L'URI di callback
deve soddisfare i seguenti requisiti:
- Deve essere un indirizzo HTTPS accessibile pubblicamente con un certificato SSL valido firmato da un'autorità di certificazione riconosciuta.
- Deve accettare le richieste HTTP
POSTcon l'intestazioneContent-Typeimpostata suapplication/json. Deve restituire uno dei seguenti codici di stato HTTP per confermare la ricezione della notifica:
102200201202204
Puoi utilizzare lo stesso URI di callback per più abbonamenti. Per ridurre al minimo il carico su un singolo endpoint, utilizza un URI di callback univoco per account avanzato e tipo di evento.
Gestisci abbonamenti
La sub-API Notifications fornisce metodi per creare, elencare, recuperare, aggiornare ed eliminare le configurazioni di notifica.
Creare una sottoscrizione
La creazione dell'abbonamento è specifica per il tipo di evento che vuoi ricevere. Ogni tipo di evento richiede campi di configurazione diversi e fornisce strutture di payload distinte.
Per scoprire come creare abbonamenti e visualizzare richieste di esempio per ogni tipo di evento, consulta le guide pertinenti:
Elenco sottoscrizioni
Per elencare tutte le iscrizioni alle notifiche per un account, invia una richiesta GET alla raccolta notificationsubscriptions:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions
Recuperare un abbonamento
Per ottenere i dettagli di un abbonamento specifico, utilizza il nome della risorsa dell'abbonamento:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Aggiornare un abbonamento
Per aggiornare l'URI di callback per un abbonamento esistente, invia una richiesta PATCH
con un update_mask che specifica i campi da aggiornare:
PATCH https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}?update_mask=callBackUri
{
"callBackUri": "https://example.com/updated-callback"
}
Eliminare un abbonamento
Per interrompere la ricezione di notifiche, elimina l'abbonamento:
DELETE https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Decodificare le notifiche
Quando si verifica un evento, Google invia una notifica al tuo callBackUri registrato. La notifica push arriva in un envelope JSON con un
payload data con codifica base64:
{"message":{"data":"{base64_encoded_string}"}}
Decodifica la stringa di dati per accedere al payload dell'evento JSON. Il seguente controller Spring Boot di esempio mostra come ricevere e decodificare le notifiche 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
}
}
Passaggi successivi
Per configurare gli abbonamenti e gestire i payload decodificati per eventi specifici, consulta:
- Ricevi notifiche push per le modifiche dello stato del prodotto:
scopri come iscriverti agli aggiornamenti relativi all'approvazione e alla disapprovazione dei prodotti e analizza
il payload
ProductStatusChangeMessage. - Ricevere notifiche push per le modifiche al servizio dell'account:
scopri come iscriverti agli aggiornamenti delle relazioni tra account e analizzare il payload
ResourceChangeMessage.