Das Inventar in Ihrem System schwankt im Laufe des Tages aufgrund von neuen Buchungen, Stornierungen und Terminänderungen von Händlern. Über die Echtzeit-Update API können Sie Google über diese Änderungen bei der Inventarverfügbarkeit informieren. Du kannst Google auch mit API-Updates in Echtzeit über Änderungen an bestehenden Buchungen informieren.
API-Aktualisierungen in Echtzeit und Feeds
API-Echtzeitaktualisierungen werden verwendet, um Google in Echtzeit über inkrementelle Änderungen der Inventarverfügbarkeit und der Buchungen zu informieren. Zusätzlich zum Echtzeit-API-Update solltest du täglich vollständige Verfügbarkeitsfeeds senden, um sicherzustellen, dass Google über die genauesten und aktuellsten Informationen zur Verfügbarkeit in deinem System verfügt. Vollständige Feeds stellen eine Momentaufnahme der aktuellen Inventarverfügbarkeit in Ihrem System dar.
Obwohl API-Updates verwendet werden können, um alle von Feeds bereitgestellten Informationen zu aktualisieren, z. B. Informationen zu Händlern und Dienstleistungen, werden sie normalerweise nur zum Aktualisieren von Verfügbarkeitsinformationen verwendet.
Erforderliche APIs für Echtzeitaktualisierungen
APIs für Echtzeitaktualisierungen | ||
---|---|---|
BookingNotification | Erforderlich | Echtzeitaktualisierungen für BookingNotification senden, wenn Änderungen an der Buchung vorgenommen werden (z.B. Änderungen oder Stornierungen). |
Echtzeitaktualisierung für "AvailabilityReplace" | Bedingt erforderlich[1] | Senden Sie entweder Batch-Ersetzungen oder einzelne Ersetzungen, um Updates zur Inventarverfügbarkeit zu senden. Es kann einige Minuten dauern, bis die Änderungen wirksam werden. |
Echtzeitaktualisierung für Händler | Optional | Echtzeitaktualisierungen für Händler senden, wenn Sie Änderungen an Händlerinformationen in Echtzeit vornehmen möchten. Es kann mehrere Stunden dauern, bis die Änderungen wirksam werden. |
Echtzeitaktualisierung für Dienstleistungen | Optional | Echtzeitaktualisierungen für Dienste senden, wenn Sie Änderungen an Dienstinformationen in Echtzeit vornehmen möchten Ein häufiger Anwendungsfall ist, wenn die Servicepreise im Laufe des Tages stark schwanken. Daher sollten Sie die Echtzeitaktualisierung von Diensten implementieren, um Bestellfehler aufgrund von nicht übereinstimmenden Preisen zu vermeiden. Es kann mehrere Stunden dauern, bis die Änderungen wirksam werden. |
Echtzeitaktualisierungen über die Availability Replace API
Verwenden Sie die AvailabilityReplace API, um in den folgenden Anwendungsfällen Verfügbarkeitsaktualisierungen bereitzustellen:
- Ein Nutzer bucht eine Reservierung in Ihrem System, sodass der verfügbare Slot nicht mehr verfügbar ist.
- Ein Händler ändert seine Verfügbarkeit in deinem System.
- Ein Nutzer bucht über Google eine Reservierung, sodass der verfügbare Slot nicht mehr verfügbar ist.
- Eine über Google vorgenommene Reservierung wird von Ihrer Seite storniert, z. B. direkt vom Händler. Sie müssen sowohl die Buchung als auch die Verfügbarkeit aktualisieren, da der ursprüngliche Slot wieder verfügbar ist.
- Ein
BatchAvailabilityLookup
-Aufruf des Buchungsservers gibt Inventar zurück, das nicht mit dem tatsächlichen Inventar übereinstimmt.
Weitere Informationen findest du unter folgenden Links:
- Anleitung: Echtzeitaktualisierungen strukturieren
- Java-Clientbeispiel für Echtzeitaktualisierungen mit RESTful-Aufrufen
- API-Referenzseite für die Inventaraktualisierung
Echtzeitaktualisierung für die Booking Notification API
Die Booking Notification APIs informieren Google über Aktualisierungen bestehender Buchungen. Wenn Sie eine Aktualisierung zu Kündigungen senden, senden Sie nur die wichtigsten Informationen in der Anfrage mit dem Abfrageparameter updateMask
. Hier ein Beispiel:
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"}
Auf die API zugreifen
Dienstkonto erstellen
Verwenden Sie den Tab Anmeldedaten in der Google API Console, um ein Dienstkonto zu erstellen. Speichern Sie den privaten Schlüssel im JSON-Format an einem sicheren Ort. Beim Erstellen des Kontos können Sie die Rolle auf „Inhaber“ festlegen.
Maps Booking APIs authentifizieren
Authentifiziere nach dem Erstellen des Dienstkontos die folgenden APIs:
- Google Maps Booking API
- Google Maps Booking API (Entwicklerversion)
Eine detaillierte Anleitung finden Sie in der Anleitung Mit Maps Booking API authentifizieren.
RESTful-Aufrufe verwenden oder die Clientbibliothek herunterladen
Wir empfehlen, RESTful-Aufrufe direkt mit JSON-Nutzlasten an die Maps Booking API zu senden. Weitere Informationen finden Sie in der Dokumentation zur REST API.
Du kannst auch Clientbibliotheken verwenden, um eine Verbindung zur API herzustellen.
Sprache | Downloadlink |
---|---|
Java | Java-Clientbibliothek. Weitere Informationen finden Sie in der Anleitung für Java-Clients. |
Es stehen zusätzliche Supportbibliotheken zum Download zur Verfügung, die die Autorisierung und andere Aspekte von Aufrufen von Google APIs verarbeiten. Sehen Sie sich bei Bedarf diese Beispiele an.
Discovery-Dokument abrufen
Bei einigen Clientbibliotheken wie Ruby muss das Discovery-Dokument für die API abgerufen werden, in dem die Methoden und Parameter beschrieben sind.
Verwenden Sie den folgenden Befehl, um das Discovery-Dokument abzurufen:
curl -s -o 'mapsbooking_rest' 'https://mapsbooking.googleapis.com/$discovery/rest?version=v1alpha'
Weitere Informationen zum Zugriff auf die API über Ruby finden Sie unter den folgenden Links: Ruby API-Client und Ruby-Authentifizierungsbibliothek.
Autorisierte API-Aufrufe durchführen
Informationen zu API-Aufrufen finden Sie unter Vorbereitung auf einen autorisierten API-Aufruf, um das Dienstkonto mit dem privaten Schlüssel und dem folgenden OAuth-Bereich zu autorisieren: https://www.googleapis.com/auth/mapsbooking
.
API-Kontingente
API-Updates haben ein Kontingent von 1.500 Anfragen alle 60 Sekunden bzw. 25 Anfragen pro Sekunde. Wenn ein Kontingent überschritten wird, was passieren kann, wenn Sie im Partner-Portal nicht die richtige Google Cloud-Projektnummer angegeben haben, gibt Google die folgende Fehlermeldung aus:
{ "error": { "code": 429, "message": "Insufficient tokens for quota ...", "status": "RESOURCE_EXHAUSTED", "details": [...] } }
Wiederholen Sie den Aufruf in diesem Fall in exponentiell größeren Intervallen, bis er erfolgreich war. Wenn Sie das Kontingent regelmäßig mit ReplaceServiceAvailability
aufbrauchen, wechseln Sie zu BatchReplaceServiceAvailabily
, um die Anzahl der API-Aufrufe zu reduzieren. Mit dieser Methode können Sie mehrere Dienste in einem einzigen API-Aufruf aktualisieren.
Sandbox- und Produktionsendpunkte
Über die API können Sie sowohl Sandbox- als auch Produktionsumgebungen aufrufen. Dazu musst du beide APIs in deinem Google Cloud-Projekt aktiviert haben. Beide APIs verwenden denselben Bereich, haben aber unterschiedliche Endpunkte.
Produktionsendpunkt: https://mapsbooking.googleapis.com/
Sandbox-Endpunkt: https://partnerdev-mapsbooking.googleapis.com/
Hier siehst du anhand eines Java-Beispiels, wie Endpunkte gewechselt werden:
// 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()