Autorização da API

Esta documentação fornece instruções detalhadas para configurar o OAuth2.0 em seu aplicativo ao acessar as APIs de hotel, como a API Travel Partner e a Price API de feeds do Google. Consulte Como usar o OAuth 2.0 para acessar as APIs do Google. para autorizar o aplicativo.

Configuração do OAuth 2.0

O OAuth 2.0 exige que você se identifique ao usar uma conta de serviço associados à sua Conta do Google. A conta de serviço envia seus dados em troca de um token de acesso do OAuth 2.0. Você pode então usar esse token chamadas para as APIs de hotéis para dados somente leitura, como preços, hotéis e dados do relatório de diagnóstico sobre seu feed de preços para hotéis.

Os tokens de acesso são válidos por uma hora (3.600 segundos).

Se você já implementou o Systrace, a abordagem do OAuth 2.0 será semelhante, com as seguintes diferenças:

  • Seu aplicativo usa uma conta de serviço do Google para acessar a API.
  • Você transmite um token de acesso do OAuth 2.0 no cabeçalho HTTP Authorization ao chamar APIs.

Para configurar sua conta para usar o OAuth 2.0 com qualquer API de hotéis, faça o seguinte: etapas:

  1. Criar um novo projeto no console do Google Cloud

  2. Criar uma conta de serviço e as credenciais dela

  3. Permitir que sua conta de serviço acesse os dados do hotel

Cada uma dessas etapas é descrita nas seções a seguir.

Etapa 1: criar um novo projeto do console do Google Cloud

O console do Google Cloud é usado para gerenciar e visualizar dados de tráfego, autenticação e informações de faturamento para as APIs do Google que seus projetos usar.

No console do Google Cloud, um projeto é uma coleção de configurações. credenciais e metadados do aplicativo em que você está trabalhando usa as APIs Google Developer e os recursos do Google Cloud.

O console do Google Cloud também é usado para gerar credenciais de API, ativar e o gerenciamento de informações de faturamento e da equipe associadas ao seu projeto.

Para criar um novo projeto do console do Google Cloud:

  1. Faça login na sua Conta do Google ou do Gmail.

  2. Abra o Console do Google Cloud. Se este for seu primeiro projeto, a visualização principal vai mostrar a mensagem CREATE PROJECT botão:

    fig1

  3. Clique no botão CRIAR PROJETO. O console do Google Cloud exibe Caixa de diálogo New Project:

    fig2

    Digite um nome amigável para seu novo projeto em Nome do projeto. campo de entrada. Abaixo do campo, o console do Google Cloud gera um projeto. para você, garantindo que o ID seja exclusivo em todos os projetos. Por exemplo: quando você digita "My New Project", o console do Google Cloud atribui um ID como my-new-project-266022:

  4. Clique no botão Criar para criar seu novo projeto.

  5. Use o menu de navegação para selecionar APIs e Serviços > Painel de controle.

    fig3

    A imagem a seguir mostra o menu de navegação no canto superior esquerdo no console do Google Cloud. Isso exibe a visualização Painel do seu projeto:

    fig4

Para mais informações, consulte Como criar e gerenciar projetos.

Etapa 2: criar uma conta de serviço e gerar as credenciais

As contas de serviço são usadas por interações de servidor para servidor, como as entre um aplicativo da Web e os dados do hotel.

Para criar e configurar uma conta de serviço, faça o seguinte:

  1. Na visualização principal do Console de APIs do Google, clique em Credenciais no no painel de navegação à esquerda. O console do Google Cloud mostra as Credenciais visualização.

    A visualização Credenciais mostra os IDs do cliente e as credenciais das suas em um projeto de IA. Seu aplicativo usa o ID do cliente ao solicitar uma Token de acesso do OAuth 2.0. Os novos projetos ainda não têm clientes ou credenciais.

  2. Clique no link Credenciais em APIs e serviços.

  3. Clique no botão Criar credenciais e selecione Chave da conta de serviço do filtro. A visualização Criar chave da conta de serviço é exibida.

  4. No filtro Conta de serviço, selecione Nova conta de serviço.

  5. Digite o nome e o ID da conta de serviço.

    O nome pode ser o que você quiser, mas o ID da conta precisa ser exclusivo em todos os projetos. O console do Google Cloud gera um ID de conta exclusivo para com base no nome inserido.

  6. Selecione JSON para o tipo de chave. O JSON é obrigatório.

  7. Clique no botão Criar. o console do Google Cloud gera uma conta um par de chaves públicas para seu projeto. A chave privada é salva no arquivo local onde o navegador armazena os downloads. É necessário fazer o download do arquivo de formato .JSON.

    Você usa a chave privada nos seus scripts ou em outros aplicativos que acessam sua API.

    O console do Google Cloud exibe a mensagem "Conta de serviço criada" quando ele termina de gerar as chaves.

  8. Clique no botão OK, entendi. O console do Google Cloud retorna você Credenciais. Para confirmar os detalhes da sua conta de serviço e Para conferir a conta de serviço associada ao seu projeto, clique em Gerenciar de contas de serviço nessa visualização.

    A conta de serviço agora tem as seguintes credenciais associadas a ela:

    • ID do cliente:um identificador exclusivo usado pelo seu aplicativo ao solicitando um token de acesso do OAuth 2.0.
    • Endereço de e-mail: um endereço de e-mail gerado para a conta de serviço, em o formulário "account_name@account_name.google.com.iam.gserviceaccount.com".
    • Impressões digitais do certificado: o ID da chave privada que você fez o download.
.

Para obter mais informações, consulte Usar o OAuth 2.0 para aplicativos de servidor para servidor.

Etapa 3: conceder à conta de serviço acesso aos seus dados da Central para Hotéis

A etapa final é conceder à nova conta de serviço acesso aos seus Central para Hotéis. A conta de serviço é identificada pelo endereço de e-mail gerado que você criou na etapa anterior. Você concede acesso a essa conta usando as configurações de compartilhamento da Central para Hotéis.

Se você não tiver o acesso adequado para adicionar usuários à conta, entre em contato com o Equipe de Hotéis no Google usando o formulário de contato e solicite a configuração da propriedade de sua conta. Você pode solicitar que um ou mais e-mails sejam enviados a um proprietário. Para mais informações sobre o acesso à Central para Hotéis, consulte Vincular a Central para Hotéis e o Google Ads.

Para conceder a uma conta de serviço acesso aos seus dados da Central para Hotéis, faça o seguinte:

  1. Em uma nova janela do navegador, abra a Central para Hotéis. fig7

  2. No banner da Central para Hotéis do Google, clique no ícone "Adicionar usuário" para abrir. a caixa de diálogo de compartilhamento.

    fig8

  3. No campo Adicionar mais pessoas, digite o endereço de e-mail do serviço. que você quer adicionar à Central para Hotéis.

  4. Mantenha a opção Notificar pessoas selecionada.

  5. Selecione Gerenciar no filtro.

  6. Clique no botão Convidar.

  7. Depois de adicionar usuários à Central para Hotéis, sua conta de serviço será ativada para ter acesso à API em cerca de 24 horas.

Depois que o Google notificar que o acesso à API está ativado para sua conta de serviço, você poderá começar a acessar a API com o OAuth 2.0.

Como usar o OAuth 2.0

Para acessar a API, seu aplicativo deve se identificar para o Google com o o endereço de e-mail gerado e a chave privada da conta de serviço. do Google o mecanismo de autenticação troca essa chave por um token de acesso do OAuth 2.0 que você transmite o cabeçalho Authorization nas chamadas de API do seu app.

Consulte Preparar-se para fazer uma chamada de API delegada.

Escopos

Confira a seguir o SCOPES da API Hotels:

API Travel Partner: "https://www.googleapis.com/auth/travelpartner"

API Travel Partner Prices: "https://travelpartnerprices.googleapis.com"

API Price Feeds: "https://www.googleapis.com/auth/travel-partner-price-upload"

Especifique a conta de serviço ao criar as credenciais. Consulte Crie uma conta de serviço e gere as credenciais dela.

Ao desenvolver seu aplicativo, siga as práticas recomendadas autenticar seu aplicativo usando chaves de API. Saiba mais.

Exemplo

from google.oauth2 import service_account
from google.auth.transport.requests import Request

# You can use a single or multiple scopes
SCOPES =
['https://www.googleapis.com/auth/travel-partner-price-upload','https://travelpartnerprices.googleapis.com','https://www.googleapis.com/auth/travelpartner']
SERVICE_ACCOUNT_FILE = 'service_account_key_file.json'

cred = service_account.Credentials.from_service_account_file(
                        SERVICE_ACCOUNT_FILE,
                        scopes=SCOPES)
cred.refresh(Request())
headers = {}
cred.apply(headers)

API Travel Partner

A API Travel Partner permite que os parceiros de hospedagem extraiam informações da Central para Hotéis e mudem os dados dela para gerenciar contas grandes ou complexas.

Siga as instruções de configuração do OAUTH 2.0 para receber autorização para sua API Travel Partner.

Ao criar um novo projeto para a API Travel Partners, é necessário ativar o acesso no novo projeto do console do Google Cloud.

Siga as etapas para ativar o acesso à API Travel Partners:

  1. Acesse a visualização do painel do seu projeto.

  2. Clique em Ativar APIs e serviços. Isso mostra a mensagem de boas-vindas da biblioteca de APIs página.

  3. No campo de pesquisa, digite "Travel Partner API" e, em seguida, no console, exibe uma lista de APIs que correspondem ao que você digitou.

  4. Clique na API correspondente na tabela. O console do Google Cloud exibe uma uma descrição da API.

  5. Clique no botão Ativar API para ativar esta API no projeto.

Para mais informações, consulte Como ativar e desativar serviços.

A API Travel Partner está ativada para o novo projeto da sua Conta do Google.

O escopo da API Travel Partner é: "https://www.googleapis.com/auth/travelpartner"

O endpoint da API Travel Partner é: "https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"

API Travel Partner Prices

A API Travel Partner Prices permite que os parceiros de hospedagem enviem os preços das propriedades Google. Esse valor também é chamado de Preço por duração da estadia (LoS).

Siga as instruções de configuração do OAUTH 2.0 para receber autorização para sua API Travel Partner Prices.

Ao criar um novo projeto para a API Travel Partners Prices, você precisa: ativar o acesso ao seu novo projeto do console do Google Cloud, que é semelhante ao instruções fornecidas na API Travel Partner.

Consulte as etapas indicadas na API Travel Partner e substitua todas as instâncias da API Travel Partner com a "API Travel Partner Prices" para ativar seu projeto.

O escopo da API Travel Partner Prices é o seguinte: "https://travelpartnerprices.googleapis.com"

O caminho de upload da API Travel Partner Prices é o seguinte: "/travel/lodging/uploads/accounts/<account_id>/property_data"

API Price Feeds

Com a API Price Feeds, os parceiros de hospedagem podem fornecer dados de preços personalizados para para cada hotel. Os parceiros de hospedagem do Google podem usar o OAuth2.0 para autenticar e autorizam-se ao fazer o upload de preços para o Google. Siga o OAUTH 2.0. instruções de configuração para receber autorização para a API Price Feeds.

Pontos importantes

Observe as diferenças importantes nas instruções de autorização para feeds de preços API.

  1. Os parceiros precisam criar um novo projeto OAuth2.0 de feeds de preços. no console do Google Cloud usando as mesmas instruções da configuração do OAuth 2.0.

  2. A ativação da API Price Feeds no console do Google Cloud NÃO é necessária e podem ser ignoradas. Você só precisa de uma conta de serviço e e, em seguida, usar a mesma conta de serviço e é a chave para conceder acesso ao projeto de feeds de preços para seu do Google Cloud. Siga as etapas restantes mencionadas na configuração do OAuth2.0 para termine de configurar sua API.

Receber token de acesso OAuth2.0 para feeds de preços

A próxima etapa é conseguir um token de acesso do OAuth2.0 com o upload do preço da hospedagem. escopo usando o arquivo de chave da conta de serviço. É possível autorizar solicitações à sua Projeto de feeds de preços seguindo as instruções fornecidas na Como se preparar para fazer uma chamada de API delegada extrair o token de acesso das credenciais adquiridas e defini-lo o cabeçalho HTTP "Authorization".

O escopo para upload do preço da hospedagem é: "https://www.googleapis.com/auth/travel-partner-price-upload"

Fazer upload de preços

Depois de receber o token de acesso, os parceiros podem fazer upload do feed de preços semelhante a usando IP estático para autenticação e autorização com o seguinte modificação:

  • Definir o token de acesso no cabeçalho HTTP "Authorization"
curl -X POST -H "Authorization: Bearer <access token>"
www.google.com/travel/lodging/uploads/accounts/<account_id>/ota/hotel_rate_amount_notif --data-binary @<price_feed_file_location>

Testar a configuração do OAuth2.0 para a API Price Feeds

Para testar a configuração do OAuth2.0, faça o upload de um arquivo vazio ou insira preços reais a qualquer um dos caminhos de upload. Use a tabela para verificar sua resposta HTTP o status atual da conta.

Status da resposta HTTP Mensagem
200 Successful (OK)
401 Service account creation or access token fetch was not successful
403 Service account access wasn't granted to the Hotel Center account or both the service account key and access token has expired

Solução de problemas

Está com problemas? Uma verificação rápida dos itens a seguir pode resolver o problema.

  1. Você criou um projeto no console do Google Cloud?
  2. Você ativou o serviço no projeto?
  3. Você fez o download de um arquivo .JSON (uma chave privada após clicar em um) Crie um ID do cliente e selecione Conta de serviço?
  4. Você recebeu o endereço de e-mail do ID do cliente de uma conta de serviço de um formulário: nnnnnnn@app_name.google.com.iam.gserviceaccount.com?
  5. Você compartilhou sua conta do Hotel Ads Center com a conta de serviço clicando o botão Compartilhar esta conta?
  6. Você enviou o endereço de e-mail da conta de serviço e seu ID de parceiro para ao Gerente técnico de contas (TAM)?
  7. Suas chamadas de API estão passando um token obtido recentemente no Cabeçalho Authorization?
  8. O token tem mais de uma hora?

A tabela a seguir lista alguns erros comuns e possíveis soluções:

Erro Descrição
Invalid credentials Isso pode significar várias coisas. Se você encontrar esse erro, verifique se:
  • Você especificou um cabeçalho Authorization com um valor token do portador.
  • O token do portador tem menos de uma hora. Um token só é válido por uma hora.
  • Você especificou o nome correto do parceiro (com o parâmetro de string de consulta partner ). O valor é o ID exclusivo do parceiro, não o nome do parceiro que aparece na Central de anúncios de hotéis. Se você não souber o ID do parceiro, entre em contato com o gerente técnico de contas (TAM, na sigla em inglês).
Not found É provável que seu endpoint esteja malformado. Verifique se você está enviando uma solicitação GET e se o URL da solicitação é válido (está em conformidade à sintaxe da API que você está tentando acessar).
Invalid string value Uma ou mais partes do endpoint contêm sintaxe inválida. Por exemplo: talvez você tenha digitado incorretamente parte do caminho. Verifique se você usou a configuração sublinhados, letras maiúsculas e palavras em todo o caminho.
Unsupported output format Esse erro geralmente ocorre ao usar a API Reports. Você deve especifique "alt=csv" no URL de GET. solicitação. A API Reports não é compatível com JSON.
AccessTokenRefreshError/Invalid grant Ao executar o app, esse erro pode ser causado pelos seguintes motivos: seguintes:
  • O endereço de e-mail da sua conta de serviço está incorreto. Verifique a conta de e-mail no console do Google Cloud e confirme se ela está autorizada a acessar sua API.
  • O endereço de e-mail não tem acesso à API. Verificar se o e-mail está autorizado a acessar os dados de hotéis compartilhados pela Central para Hotéis.
  • O arquivo de chave não é o correto da conta de serviço. Usar o console do Google Cloud para fazer o download de um novo .JSON certificado e verifique se o app está apontando para o lugar certo.
HotelAdsAPIConnection object has no attribute credentials Ao executar o app, o caminho para o arquivo .JSON é incorreto.
Invalid scope Ao executar o app, o escopo da API precisa ser um dos seguintes:
  • &quot;https://www.googleapis.com/auth/travelpartner&quot;
  • &quot;https://travelpartnerprices.googleapis.com&quot;
  • &quot;https://www.googleapis.com/auth/travel-partner-price-upload&quot;
Forbidden Você não tem autorização para usar o ID da conta que está usando para acessar. Se você for o proprietário de uma subconta, talvez não consiga acessar o ID da conta principal ou raiz.