Actualizaciones de la API en tiempo real

El inventario en tu sistema fluctúa a lo largo del día debido a nuevas reservas, cancelaciones y cambios de horarios de tus comercios. La API de actualización en tiempo real es un mecanismo para notificar a Google sobre estos cambios en la disponibilidad del inventario. También puedes usar las actualizaciones de la API en tiempo real para notificar a Google sobre los cambios que se realizan en las reservas existentes.

Las actualizaciones en tiempo real no son necesarias si todos sus comercios utilizan la función de listas de espera.

Feeds y actualizaciones de la API en tiempo real

Las actualizaciones en tiempo real de la API se usan para notificar a Google sobre cambios incrementales en la disponibilidad del inventario y las reservas a medida que ocurren en tiempo real. Además de las actualizaciones de la API en tiempo real, envía feeds de disponibilidad completos todos los días para garantizar que Google tenga el conocimiento más preciso y actualizado sobre la disponibilidad en tu sistema. Los feeds completos actúan como un resumen del estado actual de la disponibilidad del inventario en tu sistema.

Si bien las actualizaciones de las APIs se pueden usar para actualizar cualquier información que proporcionen los feeds, como la información sobre comercios y servicios, por lo general, solo se usan para actualizar la información de disponibilidad.

API de actualización en tiempo real requeridas

API de actualización en tiempo real (RTU)
BookingNotification Obligatorio Envía las RTU de BookingNotification cada vez que se modifica la reserva (p.ej., modificaciones o cancelaciones).
RTU de Availability Replace Condicionalmente obligatorio[1] Envía las RTU de reemplazo por lotes o reemplazo único para enviar actualizaciones a la disponibilidad del inventario. Los cambios pueden tardar varios minutos en propagarse y reflejarse.
RTU de Merchant Opcional Envía las RTU del comercio si quieres realizar cambios en la información del comercio en tiempo real. Los cambios pueden tardar varias horas en propagarse y reflejarse.
RTU de Service Opcional Envía las RTU del servicio si deseas realizar cambios en la información del servicio en tiempo real. Un caso de uso común es si los precios del servicio fluctúan drásticamente durante el día, se recomienda implementar RTU del servicio para evitar fallas en los pedidos debido a discrepancias de precios. Los cambios pueden tardar varias horas en propagarse y reflejarse.

RTU de la API de Availability Replace

Usa la API de Availability Replace para proporcionar actualizaciones de disponibilidad en los siguientes casos prácticos:

  • Un usuario hace una reserva en tu sistema, por lo que el horario ya no está disponible.
  • Un comercio cambia su disponibilidad en tu sistema.
  • Un usuario hace una reserva a través de Google, por lo que el horario disponible ya no está disponible.
  • En tu caso, por ejemplo, el comercio cancela una reserva que se realiza a través de Google. Debes actualizar la reserva y la disponibilidad, ya que el horario original ya está disponible nuevamente.
  • Una llamada BatchAvailabilityLookup al servidor de reservas muestra un inventario que no coincide con el real.

Para obtener más información, consulta los siguientes recursos:

RTU de la API de Booking Notification

Las APIs de Booking Notification notifican a Google sobre las actualizaciones en las reservas existentes. Cuando envíes una actualización sobre cancelaciones, envía solo la información esencial de la solicitud con el parámetro de búsqueda updateMask. A continuación, se muestra un ejemplo:

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

Cómo acceder a la API

Crea una cuenta de servicio

Usa la pestaña Credenciales en la Consola de API de Google para crear una cuenta de servicio. Almacena la clave privada en formato JSON en un lugar seguro. Cuando creas la cuenta, tienes la opción de establecer el rol como “Propietario”.

Autentica las API de Maps Booking

Tras crear una cuenta de servicio, autentica las siguientes API:

  • API de Google Maps Booking
  • API de Google Maps Booking (desarrolladores)

Si deseas obtener una guía paso a paso para hacerlo, consulta el instructivo Cómo realizar autenticaciones con la API de Maps Booking.

Utiliza llamadas RESTful o descarga la biblioteca cliente

Te recomendamos que realices llamadas RESTful directamente a la API de Maps Booking con cargas útiles de JSON. Para obtener más información, consulta la documentación de la API de REST.

También puedes utilizar bibliotecas cliente para conectarte a la API.

Lenguaje Vínculo de descarga
Java Biblioteca cliente de Java. Para obtener más información, consulta las instrucciones del cliente de Java.

Hay bibliotecas de compatibilidad adicionales disponibles para descargar que controlan la autorización y otros aspectos de las llamadas a las APIs de Google. Si es necesario, consulta estas muestras.

Obtén el documento de descubrimiento

Para algunas bibliotecas cliente, como Ruby, es necesario recuperar el documento de descubrimiento de la API, en el que se describen sus métodos y parámetros.

Usa el siguiente comando para recuperar el documento de descubrimiento:

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

Para obtener más información sobre cómo acceder a la API desde Ruby, sigue estos vínculos: Cliente de la API de Ruby y Biblioteca de Auth de Ruby.

Realiza llamadas autorizadas a la API

Cuando realices llamadas a la API, consulta Cómo prepararse para realizar una llamada a la API autorizada a fin de autorizar tu cuenta de servicio con tu clave privada y el siguiente alcance de OAuth: https://www.googleapis.com/auth/mapsbooking.

Cuotas de API

Las actualizaciones de la API tienen una cuota de 1,500 solicitudes cada 60 segundos o, en promedio, de 25 solicitudes por segundo. Cuando se supera una cuota (lo que puede suceder si no agregaste el número de proyecto de Google Cloud correcto en el Portal para socios), Google responde con el siguiente mensaje de error:

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

Para controlar esto, vuelve a realizar la llamada en intervalos cada vez más grandes hasta que se realice de forma correcta. Si agotas la cuota de forma regular con ReplaceServiceAvailability, cambia a BatchReplaceServiceAvailabily para reducir la cantidad de llamadas a la API. Con este método, puedes actualizar varios servicios con una sola llamada a la API.

Extremos en los entornos de producción y zona de pruebas

Puedes realizar llamadas a los entornos de zona de pruebas y de producción a través de la API. Asegúrate de haber habilitado las dos API en tu proyecto de Google Cloud. Ambas APIs usan el mismo alcance, pero tienen extremos diferentes.

Extremo en el entorno de producción: https://mapsbooking.googleapis.com/

Extremo en el entorno de zona de pruebas: https://partnerdev-mapsbooking.googleapis.com/

A continuación, se incluye un ejemplo en Java de cómo cambiar los extremos:

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