Krok 5. Aktualizacje interfejsu API w czasie rzeczywistym

Zasoby w Twoim systemie zmieniają się w ciągu dnia z powodu nowych rezerwacji, anulowań i zmian harmonogramu wprowadzanych przez sprzedawców. Interfejs API aktualizacji w czasie rzeczywistym to mechanizm powiadamiania Google o tych zmianach w dostępności asortymentu. Możesz też używać aktualizacji interfejsu API w czasie rzeczywistym, aby powiadamiać Google o zmianach wprowadzonych w istniejących rezerwacjach.

Aktualizacje i pliki danych w czasie rzeczywistym w interfejsie API

Aktualizacje w czasie rzeczywistym za pomocą interfejsu API służą do powiadamiania Google o przyrostowych zmianach w dostępności asortymentu i rezerwacjach w czasie rzeczywistym. Oprócz aktualizacji interfejsu API w czasie rzeczywistym wysyłaj codziennie kompletne pliki danych o dostępności, aby mieć pewność, że Google ma najbardziej dokładne i aktualne informacje o dostępności w Twoim systemie. Pełne pliki danych działają jak migawka bieżącego stanu dostępności asortymentu w Twoim systemie.

Aktualizacje interfejsu API mogą służyć do aktualizowania wszelkich informacji dostarczanych przez pliki danych, takich jak informacje o sprzedawcach i usługach, ale zwykle są używane tylko do aktualizowania informacji o dostępności.

Wymagane interfejsy API do aktualizacji w czasie rzeczywistym

Interfejsy API aktualizacji w czasie rzeczywistym (RTU)
BookingNotification Wymagane Wysyłaj jednostki RTU BookingNotification za każdym razem, gdy nastąpi zmiana rezerwacji (np. modyfikacja lub anulowanie).
Availability Replace RTU Wymagane warunkowo[1] Wysyłaj jednostki RTU zastępujące partię lub zastępujące pojedynczy produkt, aby przesyłać aktualizacje dostępności produktów. Zastosowanie zmian może potrwać kilka minut.
Merchant RTU Opcjonalny Wysyłaj RTU sprzedawcy, jeśli chcesz wprowadzać zmiany w informacjach o sprzedawcy w czasie rzeczywistym. Rozpowszechnienie i zastosowanie zmian może potrwać kilka godzin.
Service RTU Opcjonalny Wysyłaj jednostki RTU usługi, jeśli chcesz wprowadzać zmiany w informacjach o usłudze w czasie rzeczywistym. Częstym przypadkiem użycia jest sytuacja, w której ceny usług znacznie się zmieniają w ciągu dnia. W takim przypadku zalecamy wdrożenie RTU usługi, aby uniknąć niepowodzeń zamówień z powodu niezgodności cen. Zastosowanie zmian może potrwać kilka godzin.

Availability Replace API RTU

Użyj interfejsu Availability Replace API, aby przekazywać aktualizacje dostępności w tych przypadkach:

  • Użytkownik rezerwuje termin w Twoim systemie, więc nie jest on już dostępny.
  • Sprzedawca zmienia dostępność w Twoim systemie.
  • Użytkownik rezerwuje miejsce za pomocą Google, więc przedział dostępności nie jest już dostępny.
  • Rezerwacja dokonana w Google jest anulowana po Twojej stronie, np. przez sprzedawcę bezpośrednio. Musisz zaktualizować rezerwację i dostępność, ponieważ pierwotny termin jest znowu dostępny.
  • Wywołanie serwera rezerwacji BatchAvailabilityLookup zwraca zasoby reklamowe, które nie pasują do rzeczywistych zasobów reklamowych.

Więcej informacji znajdziesz w tych materiałach:

Booking Notification API RTU

Interfejsy Booking Notification API powiadamiają Google o zmianach w istniejących rezerwacjach. Gdy wysyłasz aktualizację dotyczącą anulowania, w żądaniu przesyłaj tylko najważniejsze informacje za pomocą updateMaskparametru zapytania. 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

Na karcie Dane logowania w konsoli interfejsów API Google utwórz konto usługi. Przechowuj klucz prywatny w bezpiecznym miejscu w formacie JSON. Podczas tworzenia konta możesz ustawić rolę „Właściciel”.

Uwierzytelnianie interfejsów Maps Booking API

Po utworzeniu konta usługi uwierzytelnij te interfejsy API:

  • Google Maps Booking API
  • Google Maps Booking API (Dev)

Szczegółowe instrukcje znajdziesz w samouczku Uwierzytelnianie za pomocą interfejsu Maps Booking API.

Korzystanie z wywołań RESTful lub pobieranie biblioteki klienta

Zalecamy wykonywanie wywołań REST bezpośrednio do 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 Java Więcej informacji znajdziesz w instrukcjach dotyczących klienta Java.

Dodatkowe biblioteki pomocy są dostępne do pobrania i obsługują autoryzację oraz 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, np. Ruby, konieczne jest pobranie dokumentu Discovery 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 dostępie do interfejsu API z poziomu języka Ruby znajdziesz pod tymi linkami: klient interfejsu API Rubybiblioteka uwierzytelniania Ruby.

Wykonywanie autoryzowanych wywołań interfejsu API

Podczas wywoływania interfejsu API zapoznaj się z sekcją Przygotowywanie się do wykonania autoryzowanego wywołania interfejsu API, aby autoryzować konto usługi za pomocą klucza prywatnego i tego zakresu OAuth:https://www.googleapis.com/auth/mapsbooking

Limity interfejsu API

Aktualizacje interfejsu API mają limit 1500 żądań co 60 sekund, czyli średnio 25 żądań na sekundę. Gdy limit zostanie przekroczony (co może się zdarzyć, jeśli w Portalu dla partnerów nie podasz prawidłowego numeru projektu Google Cloud), Google odpowie tym komunikatem o błędzie:

{
  "error": {
    "code": 429,
    "message": "Insufficient tokens for quota ...",
    "status": "RESOURCE_EXHAUSTED",
    "details": [...]
  }
}

Aby temu zapobiec, ponawiaj wywołanie w coraz dłuższych odstępach czasu, aż się powiedzie. Jeśli regularnie wyczerpujesz limit przy użyciu ReplaceServiceAvailability, przełącz się na BatchReplaceServiceAvailabily, aby zmniejszyć liczbę wywołań interfejsu API. Ta metoda umożliwia aktualizowanie wielu usług w ramach jednego wywołania interfejsu API.

Punkty końcowe piaskownicy i środowiska produkcyjnego

Za pomocą interfejsu API możesz wykonywać połączenia zarówno w środowisku piaskownicy, jak i w środowisku produkcyjnym. Upewnij się, że w projekcie Google Cloud masz włączone oba interfejsy API. Oba te interfejsy API używają tego samego zakresu, ale mają różne punkty końcowe.

Punkt końcowy środowiska produkcyjnego: https://mapsbooking.googleapis.com/

Punkt końcowy piaskownicy: https://partnerdev-mapsbooking.googleapis.com/

Oto przykład w języku Java, który pokazuje, jak przełączać punkty końcowe:

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