Za pomocą interfejsu Notifications API możesz otrzymywać powiadomienia push, gdy dane na Twoich kontach Merchant Center ulegną zmianie. Zamiast okresowo odpytywać interfejs API w celu wykrywania zmian, możesz subskrybować kanały zdarzeń w czasie rzeczywistym dostarczane bezpośrednio do skonfigurowanego przez Ciebie punktu końcowego HTTPS.
Podinterfejs 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 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ązane, zmodyfikowane lub usunięte połączenie z usługą konta).
Wymagania wstępne i konfiguracja identyfikatora URI wywołania zwrotnego
Aby otrzymywać powiadomienia push, musisz podać callBackUri. Adres URI wywołania zwrotnego musi spełniać te wymagania:
- Musi to być publicznie dostępny adres HTTPS z prawidłowym certyfikatem SSL podpisanym przez uznawany urząd certyfikacji.
- Musi akceptować żądania HTTP
POSTz nagłówkiemContent-Typeustawionym naapplication/json. Musi zwracać jeden z tych kodów stanu HTTP, aby potwierdzić, że powiadomienie zostało odebrane:
102200201202204
Możesz używać tego samego adresu URI wywołania zwrotnego w przypadku wielu subskrypcji. Aby zminimalizować obciążenie pojedynczego punktu końcowego, używaj unikalnego adresu URI wywołania zwrotnego dla każdego konta zaawansowanego i typu zdarzenia.
Zarządzaj subskrypcjami
Podinterfejs API powiadomień 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 ma inną strukturę ł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 nazwy zasobu subskrypcji:
GET https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}
Aktualizowanie subskrypcji
Aby zaktualizować adres URI wywołania zwrotnego w przypadku istniejącej subskrypcji, wyślij żądanie PATCH z elementem 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 wyśle powiadomienie na zarejestrowane urządzenie callBackUri. Powiadomienie push przychodzi w kopercie JSON z zakodowanym w formacie base64 ładunkiem data:
{"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 określonych zdarzeń, zapoznaj się z tymi artykułami:
- Otrzymywanie powiadomień push o zmianach stanu produktu: dowiedz się, jak subskrybować aktualizacje dotyczące odrzucenia i zatwierdzenia produktu oraz analizować
ProductStatusChangeMessageładunek. - Otrzymywanie powiadomień push o zmianach w usługach na koncie: dowiedz się, jak subskrybować aktualizacje dotyczące relacji z kontem i analizować ładunek
ResourceChangeMessage.