Aktualizacje interfejsu API w czasie rzeczywistym

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 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:

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()