Asortyment w Twoim systemie waha się w ciągu dnia w związku z nowymi rezerwacjami, anulowaniami i planowaniem zmian u sprzedawców. Interfejs API aktualizacji w czasie rzeczywistym to mechanizm powiadamiania Google o tych zmianach dostępności. Możesz też korzystać z aktualizacji interfejsu API w czasie rzeczywistym, aby powiadamiać Google o zmianach dokonanych w dotychczasowych rezerwacjach.
Aktualizacje w czasie rzeczywistym nie są konieczne, jeśli wszyscy sprzedawcy korzystają z funkcji listy oczekujących.
Aktualizacje i pliki danych w czasie rzeczywistym przez interfejs API
Aktualizacje interfejsu API w czasie rzeczywistym są wykorzystywane do powiadamiania Google o przyrostowych zmianach dostępności zasobów reklamowych i rezerwacji, które mają miejsce w czasie rzeczywistym. Oprócz aktualizowania interfejsu API w czasie rzeczywistym wysyłaj codzienne pełne pliki danych o dostępności, aby mieć pewność, że Google ma jak najdokładniejsze i aktualne informacje o dostępności w systemie. Pełne pliki danych są podsumowaniem bieżącego stanu dostępności zasobów w systemie.
Mimo że aktualizacje interfejsu API mogą być używane do aktualizacji dowolnych informacji zawartych w plikach danych, takich jak informacje o sprzedawcach i usługach, zwykle służą one tylko do aktualizowania informacji o dostępności.
Wymagane interfejsy API do aktualizowania w czasie rzeczywistym
Interfejsy API aktualizacji w czasie rzeczywistym (RTU) | ||
---|---|---|
Powiadomienie o rezerwacji | Wymagane | Wyślij RTU BookingNotification za każdym razem, gdy nastąpi zmiana w rezerwacji (np. w przypadku zmiany lub anulowania). |
Dostępność zastąpiła RTU | Wymagany warunkowo[1] | Wyślij zbiorczo zamień lub pojedyncze reguły RTU, aby wysyłać aktualizacje dostępności zasobów reklamowych. Rozpowszechnienie tych zmian może potrwać kilka minut. |
Wskaźnik RTU sprzedawcy | Opcjonalna | Jeśli chcesz wprowadzić zmiany w informacjach o sprzedawcach w czasie rzeczywistym, wyślij RTU sprzedawcy. Zastosowanie tych zmian i rozpowszechnienie ich może potrwać kilka godzin. |
Usługa RTU | Opcjonalna | Jeśli chcesz wprowadzać zmiany w informacjach o usługach w czasie rzeczywistym, wysyłaj RTU usługi. Typowym przypadkiem użycia jest sytuacja, w której ceny usług znacznie się zmieniają w ciągu dnia, dlatego zalecamy wdrożenie RTU usługi, co pozwoli uniknąć błędów zamówień z powodu niezgodności cen. Rozpowszechnienie zmian może potrwać kilka godzin. |
Dostępność zastąpienia RTU interfejsu API
Używaj interfejsu Availability Replace API do udostępniania aktualizacji dostępności w tych przypadkach użycia:
- Użytkownik rezerwuje rezerwację w Twoim systemie, dlatego przedział dostępności nie jest już dostępny.
- Sprzedawca zmienia dostępność w Twoim systemie.
- Użytkownik dokonuje rezerwacji przez Google, dlatego przedział dostępności nie jest już dostępny.
- Twoja rezerwacja jest anulowana przez Google, np. bezpośrednio przez sprzedawcę. Musisz zaktualizować rezerwację oraz dostępność, ponieważ pierwotny przedział jest już ponownie dostępny.
- Wywołanie
BatchAvailabilityLookup
z serwera rezerwacji zwraca zasoby reklamowe, które nie są zgodne z rzeczywistymi zasobami reklamowymi.
Więcej informacji znajdziesz na tych stronach:
- Samouczek: jak planować aktualizacje w czasie rzeczywistym
- Przykład klienta Java z aktualizacjami w czasie rzeczywistym za pomocą wywołań RESTful
- Strona z informacjami o interfejsie API do aktualizowania asortymentu
Interfejs API RTU do rezerwacji
Interfejsy API powiadomień o rezerwacjach powiadamiają Google o zmianach w rezerwacjach. Wysyłając aktualizację o anulowaniach, wyślij w żądaniu tylko niezbędne informacje za pomocą parametru zapytania updateMask
. Oto przykład:
Request: PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status Body: {"name":"partners/<PARTNER_ID>/bookings/<BOOKING_ID>", "status":"CANCELED"}
Dostęp do interfejsu API
Tworzenie konta usługi
Użyj karty Dane logowania w konsoli interfejsu Google API, aby utworzyć konto usługi. Przechowuj klucz prywatny w formacie JSON w bezpiecznym miejscu. Podczas tworzenia konta możesz przypisać mu rolę „Właściciel”.
Uwierzytelnianie interfejsów API rezerwacji Map Google
Po utworzeniu konta usługi uwierzytelnij następujące interfejsy API:
- Google Maps Booking API
- Google Maps Booking API (wersja deweloperska)
Przewodnik krok po kroku znajdziesz w samouczku Uwierzytelnianie za pomocą interfejsu API Map Google.
Korzystanie z połączeń REST lub pobieranie biblioteki klienta
Zalecamy wykonywanie wywołań RESTowych bezpośrednio za pomocą interfejsu Maps Booking API z ładunkami JSON. Więcej informacji znajdziesz w dokumentacji interfejsu API REST.
Do łączenia się z interfejsem API możesz też używać bibliotek klienta.
Język | Link do pobrania |
---|---|
Java | Biblioteka klienta w Javie. Więcej informacji znajdziesz w instrukcjach dla klienta Java. |
Dodatkowe biblioteki pomocy są dostępne do pobrania. Umożliwiają one autoryzację i inne aspekty wywołań interfejsów API Google. W razie potrzeby zapoznaj się z tymi przykładami.
Pobieranie dokumentu opisującego
W przypadku niektórych bibliotek klienta, takich jak Ruby, konieczne jest pobranie dokumentu Discovery dla interfejsu API, który opisuje jego metody i parametry.
Aby pobrać dokument Discovery, użyj tego polecenia:
curl -s -o 'mapsbooking_rest' 'https://mapsbooking.googleapis.com/$discovery/rest?version=v1alpha'
Więcej informacji o uzyskiwaniu dostępu do interfejsu API z Ruby znajdziesz tutaj: Ruby API Client i Ruby Auth Library.
Wykonywanie autoryzowanych wywołań interfejsu API
Jeśli wykonujesz wywołania interfejsu API, zapoznaj się z sekcją Przygotowywanie do wykonywania autoryzowanego wywołania interfejsu API, aby autoryzować konto usługi za pomocą klucza prywatnego i następującego zakresu OAuth: https://www.googleapis.com/auth/mapsbooking
.
Limity interfejsu API
Limit aktualizacji interfejsu API wynosi średnio 1500 żądań co 60 sekund lub 25 żądań na sekundę. Po przekroczeniu limitu (co może się zdarzyć, gdy w portalu dla partnerów nie jest podany prawidłowy numer projektu Google Cloud), w odpowiedzi Google wyświetla się następujący komunikat o błędzie:
{ "error": { "code": 429, "message": "Insufficient tokens for quota ...", "status": "RESOURCE_EXHAUSTED", "details": [...] } }
Aby rozwiązać ten problem, spróbuj ponownie wykonać wykładniczo większe wykłady do momentu powodzenia. Jeśli regularnie wyczerpujesz limit za pomocą ReplaceServiceAvailability
, przełącz się na BatchReplaceServiceAvailabily
, aby zmniejszyć liczbę wywołań interfejsu API. Ta metoda umożliwia aktualizowanie wielu usług w jednym wywołaniu interfejsu API.
Piaskownica i punkty końcowe produkcji
Interfejs API umożliwia wykonywanie połączeń zarówno z piaskownicy, jak i ze środowiskiem produkcyjnym. Sprawdź, czy w projekcie Google Cloud włączono oba interfejsy API. Oba interfejsy API używają tego samego zakresu, ale mają różne punkty końcowe.
Punkt końcowy produkcji: https://mapsbooking.googleapis.com/
Punkt końcowy piaskownicy: https://partnerdev-mapsbooking.googleapis.com/
Poniższy przykład pokazuje w Javie, jak zmienić punkt końcowy:
// This block of code is for OAuth and is the same for prod and sandbox. GoogleCredential .fromStream(new FileInputStream(...)) .createScoped(Collections.singleton("https://www.googleapis.com/auth/mapsbooking")) // This block of code sets the endpoint. This is what you'd change to connect to the sandbox. new GoogleMapsBookingAPI.Builder(...) .setApplicationName(...) .setRootUrl("https://partnerdev-mapsbooking.googleapis.com/") // you add this to change the endpoint to use partnerdev. .build()