Możesz użyć podrzędnego interfejsu API powiadomień, aby otrzymywać powiadomienia push, gdy dane na Twoich kontach Merchant Center ulegną zmianie. Zamiast okresowo odpytywać interfejs API w celu wykrycia zmian, możesz zasubskrybować kanały zdarzeń w czasie rzeczywistym dostarczane bezpośrednio do skonfigurowanego przez Ciebie punktu końcowego HTTPS.
Interfejs API powiadomień obsługuje powiadomienia dotyczące:
- Zmiany stanu produktu: otrzymuj alerty w czasie rzeczywistym, gdy zmieni się stan zatwierdzenia produktu (np. gdy produkt zostanie odrzucony lub zatwierdzony) na dowolnym z Twoich połączonych kont lub subkont.
- Zmiany w usługach konta: otrzymuj alerty w czasie rzeczywistym, gdy zasób
AccountServicezostanie utworzony, zaktualizowany lub usunięty (np. gdy zostanie nawiązana, zmodyfikowana lub usunięta relacja usługi konta).
Wymagania wstępne i konfiguracja identyfikatora URI wywołania zwrotnego
Aby otrzymywać powiadomienia push, musisz podać callBackUri. Identyfikator URI wywołania zwrotnego musi spełniać te wymagania:
- Musi być publicznie dostępnym adresem HTTPS z prawidłowym certyfikatem SSL podpisanym przez uznany urząd certyfikacji.
- Musi akceptować żądania HTTP
POSTz nagłówkiemContent-Typeustawionym naapplication/json. Musi zwracać jeden z tych kodów stanu HTTP, aby potwierdzić otrzymanie powiadomienia:
102200201202204
Możesz używać tego samego identyfikatora URI wywołania zwrotnego w przypadku wielu subskrypcji. Aby zminimalizować obciążenie pojedynczego punktu końcowego, użyj unikalnego identyfikatora URI wywołania zwrotnego dla każdego konta zaawansowanego i typu zdarzenia.
Zarządzaj subskrypcjami
Interfejs Notifications sub-API udostępnia metody tworzenia, wyświetlania, pobierania, aktualizowania i usuwania konfiguracji powiadomień.
Tworzenie subskrypcji
Tworzenie subskrypcji zależy od typu zdarzenia, które chcesz otrzymywać. Każdy typ zdarzenia wymaga innych pól konfiguracji i dostarcza różne struktury ładunku.
Aby dowiedzieć się, jak tworzyć subskrypcje i wyświetlać przykładowe żądania dla każdego typu zdarzenia, zapoznaj się z odpowiednimi przewodnikami:
Wyświetlanie listy subskrypcji
Aby wyświetlić listę wszystkich subskrypcji powiadomień na koncie, wyślij żądanie GET do kolekcji notificationsubscriptions:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions
Pobieranie subskrypcji
Aby uzyskać szczegółowe informacje o konkretnej subskrypcji, użyj jej nazwy zasobu:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Aktualizowanie subskrypcji
Aby zaktualizować identyfikator URI wywołania zwrotnego dla istniejącej subskrypcji, wyślij żądanie PATCH z parametrem update_mask określającym pola do zaktualizowania:
PATCH https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}?update_mask=callBackUri
{
"callBackUri": "https://example.com/updated-callback"
}
Usuwanie subskrypcji
Aby przestać otrzymywać powiadomienia, usuń subskrypcję:
DELETE https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Dekodowanie powiadomień
Gdy wystąpi zdarzenie, Google wysyła powiadomienie do zarejestrowanego callBackUri. Powiadomienie push jest dostarczane w kopercie JSON z ładunkiem data zakodowanym w formacie base64:
{"message":{"data":"{base64_encoded_string}"}}
Zdekoduj ciąg danych, aby uzyskać dostęp do ładunku zdarzenia JSON. Poniższy przykładowy kontroler Spring Boot pokazuje, jak odbierać i dekodować powiadomienia 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
}
}
Dalsze kroki
Aby skonfigurować subskrypcje i obsługiwać zdekodowane ładunki w przypadku konkretnych zdarzeń, zapoznaj się z tymi artykułami:
- Otrzymywanie powiadomień push o zmianach stanu produktu:
dowiedz się, jak subskrybować aktualizacje dotyczące zatwierdzenia i odrzucenia produktu oraz jak analizować ładunek
ProductStatusChangeMessage. - Otrzymywanie powiadomień push o zmianach w usłudze konta: dowiedz się, jak subskrybować aktualizacje relacji konta i analizować ładunek
ResourceChangeMessage.