Etapa 5: implementar atualizações da API em tempo real

O inventário no seu sistema varia ao longo do dia devido a novas reservas. cancelamentos e mudanças de horários dos comerciantes. Atualização em tempo real A API é um mecanismo para notificar o Google sobre essas mudanças no inventário disponibilidade. Também é possível usar atualizações de API em tempo real para notificar o Google sobre mudanças feitas nas reservas atuais.

Feeds e atualizações em tempo real da API

As atualizações em tempo real da API são usadas para notificar o Google sobre mudanças incrementais em disponibilidade de inventário e reservas à medida que elas ocorrem em tempo real. Além disso, a atualizações de API em tempo real, envie feeds de disponibilidade completos diariamente para garantir que o Google tenha o conhecimento mais preciso e atual da disponibilidade ele existe no sistema. Os feeds completos funcionam como um resumo do cenário atual o estado de disponibilidade de inventário no sistema.

Embora as atualizações de API possam ser usadas para atualizar qualquer informação que seja fornecidos por feeds, como informações sobre comerciantes e serviços, normalmente são usados apenas para atualizar as informações de disponibilidade.

APIs de atualização em tempo real necessárias

APIs de atualização em tempo real (RTU, na sigla em inglês)
BookingNotification Obrigatório Envie RTUs BookingNotification sempre que houver Uma mudança na reserva (por exemplo, modificações ou cancelamentos).
RTU de substituição de disponibilidade Obrigatório sob certas condições[1] Envie substituição em lote ou RTUs de substituição única para enviar atualizações à disponibilidade do inventário. As alterações podem levar vários minutos para serem propagadas e aplicadas.
RTU de comerciante Opcional Envie RTUs do comerciante se você quiser fazer mudanças no comerciante informações em tempo real. As alterações podem levar várias horas para serem propagadas e refletir.
RTU de serviço Opcional Envie RTUs de serviço para fazer alterações no serviço informações em tempo real. Um caso de uso comum é quando os preços dos serviços flutuar drasticamente durante o dia, implementar RTUs de serviço recomendado para evitar falhas nos pedidos devido à incompatibilidade de preços. As mudanças podem levar várias horas para se propagar e refletir.

RTU da API Availability Replace

Usar a API Disponibilidade Replace para fornecer atualizações de disponibilidade no os seguintes casos de uso:

  • Um usuário faz uma reserva no seu sistema, portanto, o horário disponível é não mais disponível.
  • Um comerciante altera a disponibilidade dele no seu sistema.
  • Um usuário faz uma reserva pelo Google, então o horário disponível não é mais disponível.
  • Uma reserva feita pelo Google é cancelada para você, por exemplo, diretamente pelo comerciante. Você precisa atualizar o agendamento disponibilidade, porque o horário original está disponível de novo.
  • Uma chamada BatchAvailabilityLookup do servidor de agendamento é retornada que não corresponda ao inventário real.

Para mais informações, consulte os seguintes recursos:

RTU da API Booking Notification

As APIs Booking Notification notificam o Google sobre para atualizar os agendamentos. Quando você envia uma atualização sobre cancelamentos, envie apenas as informações essenciais da solicitação com o Parâmetro de consulta updateMask. Exemplo:

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

Como acessar a API

Criar uma conta de serviço

Use a guia Credenciais no Console de APIs do Google para criar uma conta de serviço. Armazene a chave privada no formato JSON em um lugar Ao criar a conta, você tem a opção de definir a função como "Proprietário".

Autenticar as APIs Maps Booking

Depois de criar uma conta de serviço, autentique as seguintes APIs:

  • API Google Maps Booking
  • API Google Maps Booking (Dev)

Para ver um guia explicativo sobre como fazer isso, consulte o Tutorial Como autenticar com a API Maps Booking.

Usar chamadas RESTful ou fazer o download da biblioteca de cliente

Recomendamos que você faça chamadas RESTful diretamente para a API Maps Booking. com payloads JSON. Para mais informações, consulte a Documentação da API REST.

Você também pode usar bibliotecas de cliente para se conectar à API.

Linguagem Link de download
Java Biblioteca de cliente Java. Para mais informações, consulte a Instruções do cliente Java

Adicional bibliotecas de suporte estão disponíveis para download que lidar com a autorização e outros aspectos das chamadas às APIs do Google. Se necessário, dê uma olhada no destas amostras.

Buscar o documento de descoberta

Para algumas bibliotecas de cliente, como Ruby, é necessário buscar o valor-chave Documento de descoberta da API, que descreve seus métodos e parâmetros.

Use o seguinte comando para buscar o documento de descoberta:

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

Para mais informações sobre como acessar a API em Ruby, acesse estes links: Ruby API Client e Biblioteca de autenticação do Ruby.

Fazer chamadas autorizadas para a API

Ao fazer chamadas para a API, consulte Como se preparar para fazer uma chamada de API autorizada para autorizar seu serviço com sua chave privada e o seguinte escopo do OAuth: https://www.googleapis.com/auth/mapsbooking

Cotas da API

As atualizações de API têm uma cota de 1.500 solicitações a cada 60 segundos, ou 25 solicitações. por segundo, em média. Quando uma cota é excedida (o que pode ocorrer quando você não adiciona o número correto do projeto do Google Cloud no Portal do parceiro), o Google responde com o seguinte mensagem de erro:

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

Para lidar com isso, tente fazer a chamada novamente em intervalos exponencialmente maiores até dará certo. Se você esgotar a cota regularmente ReplaceServiceAvailability, trocar para BatchReplaceServiceAvailabily para reduzir o número de APIs chamadas. Com esse método, é possível atualizar vários serviços em uma única API a chamada.

Endpoints de sandbox e produção

Você pode fazer chamadas para os ambientes de sandbox e de produção através do a API. Verifique se você ativou as duas APIs no projeto do Google Cloud. As duas APIs usam o mesmo escopo, mas têm endpoints diferentes.

Endpoint de produção: https://mapsbooking.googleapis.com/

Endpoint de sandbox: https://partnerdev-mapsbooking.googleapis.com/

Veja a seguir um exemplo em Java de como alternar endpoints:

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