Autorisation de l'API

Cette documentation fournit des instructions détaillées pour configurer OAuth2.0 dans votre application lorsque vous accédez aux API Hotels, telles que l'API Travel Partner et l'API Price API Feeds. Consultez Utilisation d'OAuth 2.0 pour accéder aux API Google. pour autoriser votre application.

Configurer OAuth 2.0

OAuth 2.0 nécessite que vous vous identifiiez à l'aide d'un compte de service associés à votre compte Google. Le compte de service envoie vos données en échange d'un jeton d'accès OAuth 2.0. Vous pouvez ensuite utiliser ce jeton dans les appels vers les API Hotels pour obtenir des données en lecture seule, telles que les tarifs, les hôtels les données des rapports de diagnostic concernant votre flux Prix de l'hôtel.

Les jetons d'accès sont valables une heure (3 600 secondes).

Si vous avez déjà implémenté ClientLogin, l'approche OAuth 2.0 est similaire, avec les différences suivantes:

  • Votre application utilise un compte de service Google pour accéder à l'API.
  • Vous transmettez un jeton d'accès OAuth 2.0 dans l'en-tête HTTP Authorization lorsque appelant les API.

Pour configurer votre compte afin d'utiliser OAuth 2.0 avec n'importe quelle API Hotels, procédez comme suit : étapes:

  1. Créer un projet dans la console Google Cloud

  2. Créer un compte de service et ses identifiants

  3. Autoriser votre compte de service à accéder aux données de votre hôtel

Toutes ces étapes sont décrites plus en détail dans les sections suivantes.

Étape 1: Créez un projet de la console Google Cloud

La console Google Cloud permet de gérer et d'afficher les données de trafic. les informations d'authentification et de facturation des API Google utilisées par vos projets utiliser.

Dans la console Google Cloud, un projet est un ensemble de paramètres, des identifiants et des métadonnées concernant l'application sur laquelle vous travaillez utilise les API Google Developers et les ressources Google Cloud.

La console Google Cloud permet aussi de générer des identifiants pour l'API, d'activer les API, ainsi que la gestion des informations sur l'équipe et la facturation associées à votre projet.

Pour créer un projet dans la console Google Cloud:

  1. Connectez-vous à votre compte Gmail ou Google.

  2. Ouvrez Google Cloud Console. S'il s'agit de votre premier projet, la vue principale affiche le message CREATE PROJECT (CRÉER UN PROJET). bouton:

    fig1

  3. Cliquez sur le bouton CRÉER UN PROJET. La console Google Cloud affiche Boîte de dialogue New Project (Nouveau projet) :

    fig2

    Dans le champ Nom du projet, saisissez un nom convivial pour votre nouveau projet. . Sous le champ, la console Google Cloud génère un projet pour vous, ce qui garantit qu'il est unique parmi tous les projets. Par exemple, si vous saisissez "My New Project", la console Google Cloud attribue un ID tel que my-new-project-266022.

  4. Cliquez sur le bouton Créer pour créer votre projet.

  5. Dans le menu de navigation, sélectionnez API et Services > tableau de bord.

    fig3

    L'image suivante montre le menu de navigation en haut à gauche de la console Google Cloud. La vue Dashboard (Tableau de bord) s'affiche. projet:

    fig4

Pour en savoir plus, consultez Créer et gérer des projets.

Étape 2: Créez un compte de service et générez ses identifiants

Les comptes de service sont utilisés par les interactions de serveur à serveur, comme celles entre une application Web et les données de votre hôtel.

Pour créer et configurer un compte de service, procédez comme suit :

  1. Dans la vue principale de la console Google APIs, cliquez sur Identifiants dans la section le panneau de navigation de gauche. La console Google Cloud affiche la vue Identifiants.

    La vue Credentials (Identifiants) affiche les ID client et les identifiants de votre projet. Votre application utilise l'ID client lors de la demande Jeton d'accès OAuth 2.0. Les nouveaux projets ne sont associés à aucun client ni identifiant pour l'instant.

  2. Cliquez sur le lien Identifiants dans les API et les services.

  3. Cliquez sur le bouton Créer des identifiants, puis sélectionnez Clé de compte de service. du filtre. La vue Créer une clé de compte de service s'affiche.

  4. Dans le filtre Compte de service, sélectionnez Nouveau compte de service.

  5. Saisissez un nom et un ID de compte de service.

    Vous pouvez saisir le nom de votre choix, mais l'ID du compte doit être unique dans tous les projets. La console Google Cloud génère un ID de compte unique, basé sur le nom que vous avez saisi.

  6. Sélectionnez le type de clé JSON. Le format JSON est obligatoire.

  7. Cliquez sur le bouton Créer. La console Google Cloud génère un bucket pour votre projet. La clé privée est enregistrée emplacement où votre navigateur stocke les téléchargements. Vous devez télécharger le fichier au format .JSON.

    Vous utilisez la clé privée dans vos scripts ou dans d'autres applications ayant accès votre API.

    La console Google Cloud affiche le message "Compte de service créé" message lorsqu'il termine la génération des clés.

  8. Cliquez sur le bouton OK. La console Google Cloud vous permet de revenir Credentials (Identifiants) Pour confirmer les détails de votre compte de service Pour afficher le compte de service associé à votre projet, cliquez sur Gérer comptes de service dans cette vue.

    Les identifiants suivants sont désormais associés au compte de service:

    • ID client:identifiant unique utilisé par votre application lorsque demandant un jeton d'accès OAuth 2.0.
    • Adresse e-mail:adresse e-mail générée pour le compte de service, dans le formulaire "account_name@account_name.google.com.iam.gserviceaccount.com".
    • Empreintes de certificat:l'ID de la clé privée que vous téléchargée.

Pour en savoir plus, consultez Utiliser OAuth 2.0 pour l'authentification serveur à serveur.

Étape 3: Autorisez le compte de service à accéder à vos données Hotel Center

La dernière étape consiste à fournir au nouveau compte de service l'accès à votre Hotel Center. Le compte de service est identifié par l'adresse e-mail générée que vous avez créés à l'étape précédente. Pour donner accès à ce compte, vous utilisez les paramètres de partage de Hotel Center.

Si vous ne disposez pas des droits d'accès nécessaires pour ajouter des utilisateurs au compte, contactez à l'aide du formulaire de contact pour demander à configurer une propriété pour votre compte. Vous pouvez demander l'envoi d'une ou plusieurs adresses e-mail à un propriétaire. Pour en savoir plus sur l'accès à Hotel Center, consultez Associer Hotel Center à Google Ads.

Pour autoriser un compte de service à accéder à vos données Hotel Center:

  1. Dans une nouvelle fenêtre de navigateur, ouvrez Hotel Center. fig7

  2. Dans la bannière Hotel Center by Google, cliquez sur l'icône permettant d'ajouter un utilisateur pour l'ouvrir. la boîte de dialogue de partage.

    fig8

  3. Dans le champ Ajouter des utilisateurs, saisissez l'adresse e-mail du service. que vous souhaitez ajouter à Hotel Center.

  4. Laissez l'option Envoyer une notification sélectionnée.

  5. Sélectionnez Gérer dans le filtre.

  6. Cliquez sur le bouton Inviter.

  7. Une fois que vous avez ajouté des utilisateurs à votre compte Hotel Center, votre compte de service devrait être activé pour l'accès à l'API dans les 24 heures.

Une fois que Google vous a informé que l'accès à l'API est activé pour votre service vous pouvez commencer à accéder à l'API avec OAuth 2.0.

Utiliser OAuth 2.0

Pour accéder à l'API, votre application doit s'identifier auprès de Google à l'aide du l'adresse e-mail et la clé privée générées du compte de service. Google mécanisme d'authentification échange cette clé contre un jeton d'accès OAuth 2.0 vous transmettez l'en-tête Authorization dans les appels d'API de votre application.

Consultez Préparer un appel d'API délégué.

Niveaux d'accès

Voici l'API SCOPES pour les hôtels:

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

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

API des flux de prix: "https://www.googleapis.com/auth/travel-partner-price-upload"

Vous devez spécifier le compte de service lorsque vous créez les identifiants. Consultez Créez un compte de service et générez ses identifiants.

Lorsque vous développez votre application, assurez-vous de suivre les bonnes pratiques pour authentifier votre application à l'aide de clés API. En savoir plus

Exemple

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

L'API Travel Partner permet aux partenaires d'hébergements d'extraire Hotel Center et modifier les données Hotel Center pour gérer des comptes volumineux ou complexes.

Suivez les instructions de configuration d'OAUTH 2.0 pour obtenir l'autorisation pour votre API Travel Partner.

Lorsque vous créez un projet pour l'API Travel Partner, vous devez activer l'accès à votre nouveau projet de console Google Cloud.

Pour activer l'accès à l'API Travel Partner, procédez comme suit:

  1. Accédez au tableau de bord de votre projet.

  2. Cliquez sur Activer les API et les services. Le message de bienvenue de la bibliothèque d'API s'affiche. .

  3. Dans le champ de recherche, commencez à saisir "API Travel Partner". La console affiche une liste d'API correspondant à votre saisie.

  4. Cliquez sur l'API correspondante dans le tableau. La console Google Cloud affiche la description de cette API.

  5. Cliquez sur le bouton Activer l'API pour activer cette API pour votre projet.

Pour en savoir plus, consultez la section Activer et désactiver des services.

L'API Travel Partner est désormais activée pour le nouveau projet de votre compte Google.

Le champ d'application de l'API Travel Partner est le suivant: "https://www.googleapis.com/auth/travelpartner"

Le point de terminaison de l'API Travel Partner est le suivant: "https://travelpartner.googleapis.com/v3/accounts/<account_id>/<path>"

API Travel Partner Prices

L'API Travel Partner Prices permet à nos partenaires d'hébergement d'envoyer les prix de leurs établissements à Google On parle également de tarification pour la durée du séjour (LoS).

Suivez les instructions de configuration d'OAUTH 2.0 pour obtenir l'autorisation pour votre API Travel Partner Prices.

Lorsque vous créez un projet pour l'API Travel Partners Prices, vous devez : d'activer l'accès à votre nouveau projet de la console Google Cloud, semblable à celui fournies dans l'API Travel Partner.

Reportez-vous aux étapes fournies dans l'API Travel Partner et utilisez toutes les instances de "API Travel Partner" avec "Travel Partner Prices" pour activer votre projet.

Champ d'application de l'API Travel Partner Prices : "https://travelpartnerprices.googleapis.com"

Voici le chemin d'importation pour l'API Travel Partner Prices: "/travel/lodging/uploads/accounts/<account_id>/property_data"

API Price Feeds

L'API Price Feeds permet aux partenaires d'hébergement de fournir des données tarifaires personnalisées pour chaque hôtel. Les partenaires d'hébergement Google peuvent utiliser OAuth2.0 pour s'authentifier doivent s'autoriser lors de l'importation de leurs prix dans Google. Suivez la norme OAUTH 2.0. afin d'obtenir une autorisation pour l'API Price Feeds.

Points à retenir

Notez les différences importantes entre les instructions d'autorisation pour les flux des prix API.

  1. Les partenaires doivent créer un projet OAuth2.0 pour les flux des prix. dans la console Google Cloud, en suivant les mêmes instructions que celles fournies dans la configuration d'OAuth 2.0.

  2. L'activation de l'API Price Feeds dans la console Google Cloud n'est PAS requise. peuvent être ignorées. Vous n'avez besoin que d'un seul compte de service puis d'utiliser la même clé compte de service et pour autoriser le projet "Flux des prix" à accéder à votre compte Centrer les données. Suivez les étapes restantes indiquées dans la configuration d'OAuth2.0 pour pour terminer la configuration de votre API.

Obtenir un jeton d'accès OAuth2.0 pour les flux de prix

L'étape suivante consiste à obtenir un jeton d'accès OAuth2.0 avec l'importation des prix de l'hébergement. à l'aide du fichier de clé de compte de service. Vous pouvez autoriser les demandes les flux de prix en suivant les instructions fournies dans Préparer un appel d'API délégué puis extraire le jeton d'accès des identifiants acquis et le définir l'en-tête HTTP "Authorization".

Le champ d'application de l'importation des prix d'hébergement est le suivant: "https://www.googleapis.com/auth/travel-partner-price-upload"

Importer les prix

Après avoir obtenu le jeton d'accès, les partenaires peuvent importer leur flux des prix comme suit : à l'aide d'une adresse IP statique pour l'authentification et l'autorisation modification:

  • Définir le jeton d'accès dans l'en-tête 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>

Tester la configuration d'OAuth2.0 pour l'API Prix Feeds

Vous pouvez tester votre configuration OAuth2.0 en important un fichier vide ou en indiquant des prix réels vers n'importe quel chemin d'importation. Vérifier votre réponse HTTP à l'aide de ce tableau état.

État de la réponse HTTP Message
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

Dépannage

Vous rencontrez des problèmes ? Vous pourrez peut-être résoudre rapidement les problèmes suivants : le problème.

  1. Avez-vous créé un projet dans la console Google Cloud ?
  2. Avez-vous activé le service dans votre projet ?
  3. Avez-vous téléchargé un fichier .JSON (une clé privée après un clic) ? Créer un ID client et sélectionner Compte de service ?
  4. Avez-vous obtenu l'adresse e-mail d'un ID client de compte de service sous la forme d'un formulaire: nnnnnnn@app_name.google.com.iam.gserviceaccount.com?
  5. Avez-vous partagé votre compte Hotel Ads Center avec le compte de service en cliquant sur le bouton Partager ce compte ?
  6. Avez-vous envoyé l'adresse e-mail du compte de service et votre ID de partenaire à votre responsable de compte technique (TAM) ?
  7. Vos appels d'API transmettent-ils un jeton récemment obtenu dans le Authorization en-tête ?
  8. Votre jeton date-t-il de plus d'une heure ?

Le tableau suivant répertorie certaines erreurs courantes et les solutions possibles:

Erreur Description
Invalid credentials Cela peut signifier plusieurs choses. Si vous rencontrez cette erreur, vérifiez les points suivants:
  • Vous avez spécifié un en-tête Authorization avec une valeur et le jeton de support.
  • Le jeton de support date de moins d'une heure. Un jeton n'est bon que pendant une heure.
  • Vous avez spécifié le nom du partenaire correct (avec le paramètre de chaîne de requête partner ). La valeur correspond à votre partenaire unique et non le nom de partenaire qui s'affiche dans Hotel Ads Center. Si vous ne connaître votre ID de partenaire, contactez votre responsable de compte technique (TAM).
Not found Votre point de terminaison est probablement incorrect. Vérifiez que vous envoyez une requête GET et que l'URL de la requête est valide (elle est conforme à la syntaxe d'API à laquelle vous essayez d'accéder).
Invalid string value Une ou plusieurs parties du point de terminaison contiennent une syntaxe non valide. Par exemple, vous avez peut-être mal orthographié une partie du chemin. Vérifiez que vous avez utilisé la bonne des traits de soulignement, des majuscules et des termes dans l'ensemble du chemin.
Unsupported output format Cette erreur se produit le plus souvent lorsque vous utilisez l'API Reports. Vous devez indiquez "alt=csv" dans l'URL de votre GET requête. L'API Reports n'est pas compatible avec le format JSON.
AccessTokenRefreshError/Invalid grant Lors de l'exécution de votre application, cette erreur peut être due à suivantes:
  • L'adresse e-mail de votre compte de service est incorrecte. Consultez l'e-mail du compte Google Cloud Console et assurez-vous qu'il est autorisé à accéder à votre API.
  • L'adresse e-mail n'a pas accès à l'API. Vérifiez si l'e-mail est autorisée à accéder aux données partagées sur vos hôtels dans Hotel Center.
  • Le fichier de clé n'est pas le bon pour le compte de service. Utilisez la console Google Cloud pour télécharger un nouveau certificat .JSON et assurez-vous que votre application pointe vers le bon.
HotelAdsAPIConnection object has no attribute credentials Lors de l'exécution de l'application, le chemin d'accès à votre fichier .JSON est le suivant : incorrecte.
Invalid scope Lors de l'exécution de l'application, le champ d'application de l'API doit être l'un des suivants:
  • &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 L'ID de compte que vous utilisez est un ID que vous n'avez pas autorisé pour y accéder. Si vous êtes propriétaire d'un sous-compte, vous n'aurez peut-être pas accès l'ID du compte parent ou racine.