Paso 5: Implementa actualizaciones de la API en tiempo real

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

Feeds y actualizaciones de la API en tiempo real

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

Si bien las actualizaciones de API se pueden usar para actualizar cualquier información que se proporcionados por los feeds, como información sobre comercios y servicios, se se usan solo 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 RTU de BookingNotification siempre que haya un cambio en la reserva (p.ej., modificaciones o cancelaciones).
RTU de Availability Replace Condicionalmente obligatorio[1] Enviar cualquiera de las dos opciones reemplazo por lotes o RTU de 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 el comercio información en tiempo real. Los cambios pueden tardar varias horas en propagarse y reflexionar.
RTU de Service Opcional Envía las RTU del servicio si quieres realizar cambios en el servicio información en tiempo real. Un caso de uso común es si los precios del servicio fluctúan drásticamente durante el día, la implementación de RTU del servicio es se recomienda para evitar errores en los pedidos debido a discrepancias de precios. Los cambios pueden pueden demorar 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 el los siguientes casos de uso:

  • Un usuario hace una reserva en tu sistema, por lo que el horario disponible no es ya estén disponibles.
  • Un comercio cambia su disponibilidad en tu sistema.
  • Un usuario hace una reserva a través de Google, por lo que el horario disponible no es ya estén disponibles.
  • Una reserva realizada a través de Google se cancela de tu lado, por ejemplo, directamente por el comercio. Debes actualizar la reserva y la ya que el horario original vuelve a estar disponible.
  • Devuelve una llamada BatchAvailabilityLookup al servidor de reservas que no coincide con el inventario 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 de las reservas existentes. Cuando envías una actualización sobre cancelaciones, enviar solo la información esencial de la solicitud con el Parámetro de consulta 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 APIs de Google para Crea una cuenta de servicio. Guarda la clave privada en formato JSON en un lugar seguro. en un lugar específico. Cuando creas la cuenta, tienes la opción de establecer el rol en "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)

Para obtener una guía paso a paso sobre cómo hacerlo, consulta el Instructivo para autenticar 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 la Instrucciones del cliente de Java.

Adicional bibliotecas de compatibilidad disponibles para descargar administrar la autorización y otros aspectos de las llamadas a las APIs de Google. Si es necesario, echa un vistazo estas muestras.

Obtén el documento de descubrimiento

Para algunas bibliotecas cliente, como Ruby, es necesario recuperar el Documento de descubrimiento para 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 Prepárate para realizar una llamada a la API autorizada para autorizar tu servicio con tu clave privada y el siguiente alcance de OAuth: https://www.googleapis.com/auth/mapsbooking

Cuotas de la API

Las actualizaciones de API tienen una cuota de 1,500 solicitudes cada 60 segundos, o 25 solicitudes por segundo en promedio. Cuando se supera una cuota (lo que puede suceder cuando no agregaste el número correcto del proyecto de Google Cloud 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 intentar la llamada en intervalos exponencialmente más grandes hasta que si tiene éxito. Si agotas la cuota con regularidad con ReplaceServiceAvailability, cambiar a BatchReplaceServiceAvailabily para reducir la cantidad de APIs llamadas. Este método te permite actualizar varios servicios en una sola API llamada.

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

Puedes realizar llamadas a los entornos de producción y zona de pruebas 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()