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
BatchAvailabilityLookupzwraca zasoby reklamowe, które nie pasują do rzeczywistych zasobów reklamowych.
Więcej informacji znajdziesz w tych materiałach:
- Samouczek: jak strukturyzować aktualizacje w czasie rzeczywistym
- Przykład klienta Java do aktualizacji w czasie rzeczywistym za pomocą wywołań RESTful
- Strona dokumentacji interfejsu Inventory Update API
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 Ruby i biblioteka 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()