Schritt 5: API-Aktualisierungen in Echtzeit

Aufgrund von neuen Buchungen, Stornierungen und Terminänderungen deiner Händler unterliegt das Inventar in deinem System im Laufe des Tags Schwankungen. Mit APIs für Echtzeitaktualisierungen wird Google über diese Änderungen der Inventarverfügbarkeit informiert. Du kannst sie auch verwenden, um Google über Änderungen an bestehenden Buchungen zu informieren.

API-Aktualisierungen in Echtzeit und Feeds

API-Aktualisierungen in Echtzeit werden verwendet, um Google in Echtzeit über inkrementelle Änderungen der Inventarverfügbarkeit und der Buchungen zu informieren. Zusätzlich zu API-Updates in Echtzeit solltest du jeden Tag vollständige Verfügbarkeitsfeeds senden, damit Google die aktuelle Informationen zur Verfügbarkeit in deinem System hat. Vollständige Feeds geben eine Übersicht über den aktuellen Status der Inventarverfügbarkeit in deinem System.

Du kannst API-Aktualisierungen nutzen, um alle Informationen zu aktualisieren, die in Feeds bereitgestellt werden, z. B. zu Händlern und Dienstleistungen. Sie werden aber normalerweise nur zum Aktualisieren von Verfügbarkeitsinformationen verwendet.

Erforderliche APIs für Echtzeitaktualisierungen

APIs für Echtzeitaktualisierungen
BookingNotification Erforderlich Sende bei jeder Änderung der Buchung (z.B. Verschiebung oder Stornierung) Echtzeitaktualisierungen für „BookingNotification“.
Echtzeitaktualisierung für "AvailabilityReplace" Bedingt erforderlich[1] Sende entweder Echtzeitaktualisierungen für Ersetzungen als Batch-Vorgang oder Einzelvorgang, um Google über Änderungen der Inventarverfügbarkeit zu informieren. Es kann mehrere Minuten dauern, bis Änderungen übernommen und angezeigt werden.
Echtzeitaktualisierung für Händler Optional Echtzeitaktualisierungen für Händler sendest du, wenn du Händlerinformationen in Echtzeit ändern möchtest. Es kann mehrere Stunden dauern, bis die Änderungen übernommen und angezeigt werden.
Echtzeitaktualisierung für Dienstleistungen Optional Echtzeitaktualisierungen für Dienstleistungen sendest du, wenn du Dienstleistungsinformationen in Echtzeit ändern möchtest. Das bietet sich z. B. an, wenn Preise für Dienstleistungen im Laufe des Tages stark schwanken. Mit Echtzeitaktualisierungen für Dienstleistungen kannst du dann Bestellfehler aufgrund von abweichenden Preisen verhindern. Es kann mehrere Stunden dauern, bis Änderungen übernommen und angezeigt werden.

Echtzeitaktualisierungen über die Availability Replace API

Verwende die Availability Replace API, um die Verfügbarkeit in folgenden Fällen zu aktualisieren:

  • Ein Nutzer reserviert einen Slot in Ihrem System. Er ist also nicht mehr verfügbar.
  • Ein Händler ändert seine Verfügbarkeit in deinem System.
  • Ein Nutzer reserviert einen Slot über Google. Er ist also nicht mehr verfügbar.
  • Eine Reservierung, die über Google vorgenommen wurde, wird in Ihrem System storniert, z. B. direkt vom Händler. Du musst die Buchung und die Verfügbarkeit aktualisieren, weil 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 du eine Aktualisierung für Stornierungen sendest, schließe nur die wichtigsten Informationen in die Anfrage mit dem updateMask-Abfrageparameter ein. 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. Speichere den privaten Schlüssel im JSON-Format an einem sicheren Ort. Bei der Kontoerstellung kannst du die Rolle auf „Inhaber“ setzen.

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 findest du hier.

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 REST API-Dokumentation.

Du kannst auch Clientbibliotheken verwenden, um eine Verbindung zur API herzustellen.

Sprache Downloadlink
Java Java-Clientbibliothek. Weitere Informationen finden Sie in der Anleitung zum Java-Client.

Du kannst zusätzliche Hilfsbibliotheken herunterladen, die die Autorisierung und andere Aspekte von Aufrufen von Google APIs verarbeiten. Bei Bedarf können Sie sich diese Beispiele ansehen.

Discovery-Dokument abrufen

Bei einigen Clientbibliotheken (z. B. für 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 findest du unter folgenden Links: Ruby API-Client und Google Auth Library für Ruby.

Autorisierte API-Aufrufe durchführen

Wenn Sie API-Aufrufe durchführen, lesen Sie sich den Abschnitt zu autorisierten API-Aufrufen durch, 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 ist ein Kontingent von 1.500 Anfragen pro 60 Sekunden zugewiesen. Das entspricht durchschnittlich 25 Anfragen pro Sekunde. Wird das Kontingent überschritten (was passieren kann, wenn Sie im Partnerportal nicht die richtige Google Cloud-Projektnummer angegeben haben), 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 Abständen, bis er erfolgreich ist. Wenn Sie das Kontingent regelmäßig mit ReplaceServiceAvailability ausschöpfen, können Sie zu BatchReplaceServiceAvailabily wechseln und so die Anzahl der API-Aufrufe reduzieren. Mit dieser Methode können Sie mehrere Dienste in einem einzigen API-Aufruf aktualisieren.

Sandbox- und Produktionsendpunkte

Über die API kannst du sowohl Sandbox- als auch die 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()