Mises à jour via l'API en temps réel

L'inventaire de votre système fluctue tout au long de la journée en raison des nouvelles réservations, des annulations et des modifications d'horaires de vos marchands. L'API de mise à jour en temps réel permet d'informer Google de ces changements concernant la disponibilité de l'inventaire. Vous pouvez également utiliser les mises à jour de l'API en temps réel pour informer Google des modifications apportées aux réservations existantes.

Les mises à jour en temps réel ne sont pas nécessaires si tous vos marchands utilisent la fonctionnalité de liste d'attente.

Flux et mises à jour de l'API en temps réel

Les mises à jour de l'API en temps réel permettent d'informer Google des modifications incrémentielles apportées à la disponibilité des stocks et aux réservations, au fur et à mesure qu'elles sont effectuées en temps réel. En plus des mises à jour de l'API en temps réel, envoyez quotidiennement des flux de disponibilité complets pour que Google dispose des données de disponibilité les plus précises et les plus récentes sur votre système. Les flux complets constituent un instantané de l'état actuel de la disponibilité de l'inventaire dans votre système.

Bien que les mises à jour de l'API puissent être utilisées pour mettre à jour toute information fournie par les flux, telles que les informations sur les marchands et les services, elles ne sont généralement utilisées que pour mettre à jour la disponibilité.

API de mise à jour en temps réel requises

API de mise à jour en temps réel
BookingNotification Obligatoire Envoyez des mises à jour en temps réel BookingNotification chaque fois que la réservation est modifiée (par exemple, en cas de modification ou d'annulation).
Availability Replace – Mises à jour en temps réel Obligatoire sous certaines conditions[1] Envoyez des remplacements groupés ou des mises à jour en temps réel de remplacement unique pour mettre à jour la disponibilité de l'inventaire. La propagation et la prise en compte des modifications peuvent prendre plusieurs minutes.
Merchant – Mises à jour en temps réel Facultatif Envoyez des mises à jour en temps réel marchand si vous souhaitez modifier en temps réel les informations sur les marchands. La propagation et la prise en compte des modifications peuvent prendre plusieurs heures.
Service – Mises à jour en temps réel Facultatif Envoyez des mises à jour en temps réel de service si vous souhaitez modifier les informations sur un service en temps réel. Voici un cas d'utilisation courant : si les prix des services fluctuent considérablement au cours de la journée, il est recommandé d'implémenter des mises à jour en temps réel du service pour éviter les échecs de commande dus à une différence de prix. La propagation et la prise en compte des modifications peuvent prendre plusieurs heures.

API Availability Replace – Mises à jour en temps réel

Elle permet de fournir des mises à jour de disponibilité dans les cas d'utilisation suivants:

  • Un utilisateur effectue une réservation sur votre système. Le créneau de disponibilité n'est donc plus disponible.
  • Un marchand modifie sa disponibilité dans votre système.
  • Un utilisateur effectue une réservation via Google. Le créneau de disponibilité n'est donc plus disponible.
  • Une réservation effectuée via Google est annulée de votre côté (par exemple, par le marchand directement). Vous devez mettre à jour la réservation et la disponibilité, car le créneau d'origine est à nouveau disponible.
  • Un appel BatchAvailabilityLookup au serveur de réservation renvoie un inventaire qui ne correspond pas à l'inventaire réel.

Pour en savoir plus, consultez les ressources suivantes :

API Booking Notification – Mise à jour en temps réel

L'API Booking Notification informe Google des modifications apportées aux réservations existantes. Lorsque vous envoyez des informations sur les annulations, n'envoyez que les informations essentielles dans la requête à l'aide du paramètre de requête updateMask. Voici un exemple :

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"}

Accéder à l'API

Créer un compte de service

Utilisez l'onglet Identifiants de la console Google APIs pour créer un compte de service. Stockez la clé privée au format JSON dans un endroit sûr. Lorsque vous créez le compte, vous avez la possibilité de définir le rôle sur "Propriétaire".

Authentifier les API Maps Booking

Après avoir créé un compte de service, authentifiez les API suivantes :

  • API Google Maps Booking
  • API Google Maps Booking (développeurs)

Pour obtenir un guide par étapes sur la procédure à suivre, consultez le tutoriel S'authentifier avec l'API Maps Booking.

Utiliser des appels RESTful ou télécharger la bibliothèque cliente

Nous vous recommandons d'effectuer des appels RESTful directement vers l'API Maps Booking avec des charges utiles JSON. Pour en savoir plus, consultez la documentation de l'API REST.

Vous pouvez également utiliser des bibliothèques clientes pour vous connecter à l'API.

langage Télécharger le lien
Java Bibliothèque client Java. Pour en savoir plus, consultez les instructions sur le client Java.

Vous pouvez télécharger d'autres bibliothèques d'aide qui gèrent les autorisations et d'autres aspects des appels aux API Google. Si nécessaire, consultez ces exemples.

Récupérer le document de découverte

Pour certaines bibliothèques clientes, telles que Ruby, vous devez extraire le document de découverte de l'API, qui décrit ses méthodes et ses paramètres.

Utilisez la commande suivante pour récupérer le document de découverte:

curl -s -o 'mapsbooking_rest' 'https://mapsbooking.googleapis.com/$discovery/rest?version=v1alpha'

Pour en savoir plus sur l'accès à l'API depuis Ruby, suivez les liens suivants : Client de l'API Ruby et Bibliothèque d'authentification Ruby.

Effectuer des appels autorisés à l'API

Lorsque vous appelez l'API, consultez Préparer un appel d'API autorisé pour autoriser votre compte de service à l'aide de votre clé privée et du champ d'application OAuth suivant : https://www.googleapis.com/auth/mapsbooking.

Quotas d'API

Les mises à jour d'API ont un quota de 1 500 requêtes toutes les 60 secondes, soit 25 requêtes par seconde en moyenne. Lorsqu'un quota est dépassé (ce qui peut se produire lorsque vous n'avez pas ajouté le bon numéro de projet Google Cloud dans le portail des partenaires), Google répond avec le message d'erreur suivant:

{
  "error": {
    "code": 429,
    "message": "Insufficient tokens for quota ...",
    "status": "RESOURCE_EXHAUSTED",
    "details": [...]
  }
}

Pour gérer ce problème, relancez l'appel à des intervalles exponentiellement plus grands jusqu'à ce qu'il aboutisse. Si vous épuisez régulièrement le quota avec ReplaceServiceAvailability, passez à BatchReplaceServiceAvailabily pour réduire le nombre d'appels d'API. Cette méthode vous permet de mettre à jour plusieurs services via un seul appel d'API.

Points de terminaison bac à sable et production

Vous pouvez appeler les environnements de bac à sable et de production via l'API. Assurez-vous d'avoir activé les deux API dans votre projet Google Cloud. Ces deux API utilisent le même champ d'application, mais leurs points de terminaison sont différents.

Point de terminaison production : https://mapsbooking.googleapis.com/

Point de terminaison bac à sable : https://partnerdev-mapsbooking.googleapis.com/

Voici un exemple de modification du point de terminaison en Java :

    // 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()