Zapasy w Twoim systemie zmieniają się w ciągu dnia z powodu nowych rezerwacji, anulowań i zmian harmonogramu przez sprzedawców. Interfejs API do aktualizacji w czasie rzeczywistym to mechanizm, który informuje Google o zmianach w dostępności asortymentu. Możesz też używać aktualizacji interfejsu API w czasie rzeczywistym, aby powiadamiać Google o zmianach wprowadzonych w dotychczasowych rezerwacjach.
Aktualizacje i pliki danych API w czasie rzeczywistym
Aktualizacje w czasie rzeczywistym w interfejsie API służą do powiadamiania Google o stopniowych zmianach w dostępności asortymentu i rezerwacjach w czasie rzeczywistym. Oprócz aktualizacji interfejsu API w czasie rzeczywistym codziennie wysyłaj pełne pliki danych o dostępności, aby Google miało jak najbardziej dokładne i aktualne informacje o dostępności w Twoim systemie. Pełne pliki danych stanowią podsumowanie aktualnego stanu dostępności asortymentu w Twoim systemie.
Chociaż aktualizacji interfejsu API można używać do aktualizowania wszelkich informacji udostępnianych przez pliki 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 aktualizacji w czasie rzeczywistym
Interfejsy API aktualizacji w czasie rzeczywistym | ||
---|---|---|
BookingNotification | Wymagany | Wysyłaj RTU BookingNotification, gdy nastąpi jakakolwiek zmiana w rezerwacji (np. modyfikacja lub anulowanie). |
Dostępność Zastąp RTU | Wymagane warunkowo[1] | Aby zaktualizować dostępność produktów, wyślij żądania aktualizujące zbiorcze lub pojedyncze. Zastosowanie zmian może potrwać kilka minut. |
RTU sprzedawcy | Opcjonalnie | Jeśli chcesz wprowadzić zmiany w informacjach o sprzedawcy w czasie rzeczywistym, wyślij do niego RTU. Zastosowanie zmian może potrwać kilka godzin. |
Usługa RTU | Opcjonalnie | Jeśli chcesz w czasie rzeczywistym wprowadzać zmiany w informacjach o usłudze, wyślij wywołania usługi RTU. Typowym przypadkiem użycia jest sytuacja, gdy ceny usług zmieniają się znacznie w ciągu dnia. W takim przypadku zalecamy stosowanie RTU usługi, aby uniknąć niepowodzeń zamówień z powodu niezgodności ceny. Rozpowszechnienie i wdrożenie zmian może potrwać kilka godzin. |
Availability Replace API RTU
Użyj interfejsu Availability Replace API, aby przesyłać aktualizacje dostępności w następujących przypadkach:
- Użytkownik rezerwuje rezerwację w Twoim systemie, więc slot dostępności nie jest już dostępny.
- sprzedawca zmienia dostępność w Twoim systemie;
- Użytkownik dokonuje rezerwacji przez Google, więc slot dostępności nie jest już dostępny.
- Rezerwacja dokonana w Google została anulowana po Twojej stronie, na przykład przez sprzedawcę. Musisz zaktualizować rezerwację i dostępność, ponieważ pierwotny termin jest znowu dostępny.
- Wywołanie funkcji booking server
BatchAvailabilityLookup
zwraca zasoby reklamowe, które nie pasują do rzeczywistych zasobów reklamowych.
Więcej informacji znajdziesz w tych materiałach:
- Samouczek: jak tworzyć aktualizacje w czasie rzeczywistym
- Przykład klienta w Javie do aktualizacji w czasie rzeczywistym przy użyciu wywołań RESTful
- Strona z dokumentacją interfejsu API dotyczącą aktualizacji asortymentu
Booking Notification API RTU
Interfejsy Booking Notification API wysyłają do Google powiadomienia o aktualizacjach istniejących rezerwacji. Przesyłając informacje o anulowaniach, podaj w prośbie tylko najważniejsze 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 interfejsów API Google, aby utworzyć konto usługi. Przechowuj klucz prywatny w formacie JSON w bezpiecznym miejscu. Podczas tworzenia konta możesz ustawić rolę na „Właściciel”.
Uwierzytelnianie interfejsów Map Booking API
Po utworzeniu konta usługi uwierzytelnij te interfejsy API:
- Google Maps Booking API
- Interfejs API rezerwacji Map Google (dla programistów)
Szczegółowe instrukcje znajdziesz w samouczku Uwierzytelnianie za pomocą interfejsu Maps Booking API.
Używanie wywołań REST lub pobieranie biblioteki klienta
Zalecamy wykonywanie wywołań REST bezpośrednio do interfejsu Maps Booking API z zawartością 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. |
Do pobrania są dostępne dodatkowe biblioteki pomocnicze, które obsługują 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, 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 Ruby znajdziesz pod tymi linkami: Ruby API Client i Ruby Auth Library.
Wykonywanie autoryzowanych wywołań interfejsu API
Przed wywołaniem interfejsu API zapoznaj się z artykułem Przygotowywanie autoryzowanego wywołania interfejsu API, aby autoryzować konto usługi za pomocą klucza prywatnego i tego zakresu uprawnień 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 przekroczysz limit (co może się zdarzyć, gdy nie dodasz prawidłowego numeru projektu Google Cloud w Portalu Partnera), Google wyświetli ten komunikat o błędzie:
{ "error": { "code": 429, "message": "Insufficient tokens for quota ...", "status": "RESOURCE_EXHAUSTED", "details": [...] } }
Aby temu zaradzić, ponownie wywołaj funkcję, ale z coraz większymi odstępami czasowymi, aż do skutku. Jeśli regularnie wyczerpujesz limit interfejsu API 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.
Punkty końcowe w piaskownicy i w produkcji
Za pomocą interfejsu API możesz wywoływać interfejsy w piaskownicy i w środowisku produkcyjnym. Upewnij się, że oba interfejsy API są włączone w projekcie Google Cloud. Oba te interfejsy API mają ten sam zakres, ale mają różne punkty końcowe.
Punkt końcowy w środowisku produkcyjnym: https://mapsbooking.googleapis.com/
Punkt końcowy w piaskownicy: https://partnerdev-mapsbooking.googleapis.com/
Oto przykład w języku Java, 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()