API-Aktualisierungen in Echtzeit

Das Inventar in deinem System schwankt im Laufe des Tages aufgrund neuer Buchungen, Stornierungen und Zeitplanänderungen durch deine Händler. Die API für Echtzeitaktualisierungen ist ein Mechanismus, um Google über diese Änderungen der Inventarverfügbarkeit zu informieren. Mithilfe von API-Updates in Echtzeit kannst du Google auch über Änderungen an bestehenden Buchungen informieren.

Wenn alle deine Händler die Wartelistenfunktion nutzen, sind keine Echtzeitaktualisierungen erforderlich.

API-Aktualisierungen in Echtzeit und Feeds

API-Aktualisierungen in Echtzeit werden verwendet, um Google in Echtzeit über inkrementelle Änderungen an Inventarverfügbarkeit und Buchungen zu informieren. Zusätzlich zu API-Updates in Echtzeit kannst du täglich vollständige Verfügbarkeitsfeeds senden, damit Google über die genauesten und aktuellsten Informationen zur Verfügbarkeit in deinem System verfügt. Vollständige Feeds sind eine Momentaufnahme des aktuellen Status der Inventarverfügbarkeit in Ihrem System.

API-Aktualisierungen können zwar verwendet werden, um alle Informationen zu aktualisieren, die von Feeds bereitgestellt werden, z. B. Informationen zu Händlern und Dienstleistungen, werden aber normalerweise nur zum Aktualisieren von Verfügbarkeitsinformationen verwendet.

Erforderliche APIs für Echtzeitaktualisierungen

APIs für Echtzeitaktualisierungen
BookingNotification Erforderlich Echtzeitaktualisierungen für BookingNotification werden immer gesendet, wenn sich die Buchung ändert (z.B. bei Stornierungen).
Echtzeitaktualisierung für "AvailabilityReplace" Bedingt erforderlich[1] Senden Sie entweder Echtzeitaktualisierungen für Batch-Ersetzungen oder einzelne Ersetzungen, um Aktualisierungen der 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 du Händlerinformationen in Echtzeit ändern möchtest. Es kann mehrere Stunden dauern, bis die Änderungen wirksam werden.
Echtzeitaktualisierung für Dienstleistungen Optional Echtzeitaktualisierungen für den Dienst senden, wenn Sie Dienstinformationen in Echtzeit ändern möchten. Ein häufiger Anwendungsfall ist, dass die Servicepreise im Laufe des Tages stark schwanken. In diesem Fall wird empfohlen, Echtzeitaktualisierungen für Dienstleistungen zu implementieren, um Bestellfehler aufgrund von Preisabweichungen zu vermeiden. Es kann mehrere Stunden dauern, bis die Änderungen wirksam werden.

Echtzeitaktualisierungen über die Availability Replace API

Verwende die Availability Replace 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 eine Reservierung über Google, sodass der verfügbare Slot nicht mehr verfügbar ist.
  • Eine Reservierung, die über Google vorgenommen wurde, wird für Sie storniert, z. B. direkt vom Händler. Sie müssen die Buchung und die Verfügbarkeit aktualisieren, da der ursprüngliche Slot jetzt 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:

Booking Notification API – Echtzeitaktualisierung

Über die Booking Notification APIs wird Google über Aktualisierungen bestehender Buchungen informiert. Wenn Sie eine Aktualisierung zu Stornierungen senden, senden Sie mit dem Abfrageparameter updateMask nur die wesentlichen Informationen in der Anfrage. 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. Bewahren Sie den privaten Schlüssel im JSON-Format an einem sicheren Ort auf. Beim Erstellen des Kontos haben Sie die Möglichkeit, die Rolle auf „Inhaber“ festzulegen.

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 dazu findest du in der Anleitung Mit der Maps Booking API authentifizieren.

RESTful-Aufrufe verwenden oder die Clientbibliothek herunterladen

Wir empfehlen dir, RESTful-Aufrufe mit JSON-Nutzlasten direkt an die Maps Booking API zu senden. Weitere Informationen findest du 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 den Java-Client.

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 werden.

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 Auth Library.

Autorisierte API-Aufrufe durchführen

Wenn Sie Aufrufe an die API senden, lesen Sie den Artikel Autorisierte API-Aufrufe vorbereiten, um Ihr Dienstkonto mit Ihrem privaten Schlüssel und dem folgenden OAuth-Bereich zu autorisieren: https://www.googleapis.com/auth/mapsbooking.

API-Kontingente

API-Aktualisierungen haben ein Kontingent von 1.500 Anfragen alle 60 Sekunden oder 25 Anfragen pro Sekunde durchschnittlich. Wenn ein Kontingent überschritten wird (was passieren kann, wenn du nicht die richtige Google Cloud-Projektnummer in deinem Partner-Portal hinzugefügt hast), antwortet Google mit der folgenden Fehlermeldung:

{
  "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 ist. Wenn Sie das Kontingent regelmäßig mit ReplaceServiceAvailability ausschöpfen, 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 die Sandbox- als auch die Produktionsumgebung aufrufen. Dazu musst du beide APIs in deinem Google Cloud-Projekt aktiviert haben. Beide APIs verwenden denselben Bereich, haben jedoch 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()