Configurer l'API Places (nouvelle version)

Développeurs de l'Espace économique européen (EEE)

Ce document décrit les étapes à suivre pour commencer à utiliser l'API Places (New).

Prérequis

Cette procédure vous guide dans la configuration d'un compte Google Cloud et d'un projet Google Cloud pour lequel la facturation est activée. Vous devez également savoir comment l'utilisation de l'API Places (New) vous est facturée.

  1. Examinez la facturation et les coûts d'utilisation sur la page Utilisation et facturation de l'API Places (New).
  2. Vérifiez que vous disposez d'un compte Google Cloud.

    Se connecter à la console Google Cloud
  3. Vérifiez que vous disposez d'un projet Google Cloud pour lequel la facturation est activée.

    Accéder à la page "Facturation"
    1. Sélectionnez votre projet pour ouvrir la page Facturation.
    2. Sur la page Facturation :

      • Si la facturation est déjà activée pour le projet sélectionné et que vous ne disposez que d'un seul compte de facturation, la page Facturation s'ouvre.
      • Si vous possédez plusieurs comptes de facturation, sélectionnez Accéder au compte de facturation associé pour afficher les détails du compte de facturation associé au projet.
      • Si un compte de facturation existe, mais qu'il n'est pas associé au projet, vous êtes invité à associer un compte de facturation au projet.
      • Si aucun compte de facturation n'existe ou si vous souhaitez en créer un, sélectionnez Gérer les comptes de facturation pour créer un compte de facturation. Pour en savoir plus, consultez Créer un compte de facturation Cloud en libre-service.

Activer l'API

Avant de pouvoir utiliser l'API Places (New), vous devez l'activer dans votre projet Google Cloud à l'aide de la console Google Cloud ou de la commande gcloud.

Pour activer l'API, utilisez la commande suivante :

Console

  1. Ouvrez la page du produit dans la console Google Cloud :

    Activer l'API Places (nouvelle version)
  2. Cliquez sur le bouton Activer.

gcloud

gcloud services enable \
    --project "PROJECT" \
    "places.googleapis.com"

En savoir plus sur le SDK Google Cloud, l'installation du SDK Cloud et les commandes suivantes :

Obtenir une clé API à utiliser avec l'API Places (nouvelle version)

Les produits Google Maps Platform sont protégés contre les utilisations non autorisées en exigeant que les appels d'API incluent soit une clé API, soit un jeton OAuth. La procédure de clé API est la première étape. Pour utiliser un jeton OAuth à la place, consultez Créer un jeton OAuth.

Une clé API est une chaîne alphanumérique unique qui associe votre compte de facturation Cloud et votre projet Google Cloud à la requête que votre application envoie à une API ou un SDK Google Maps Platform. Pour créer une clé ou ajouter une API ou un SDK à une clé existante, suivez ces instructions.

Console

  1. Accédez à la page Google Maps Platform > Clés et identifiants.

    Accéder à la page "Clés et identifiants"

  2. Si vous y êtes invité, sélectionnez votre projet.
  3. Effectuez l'une des opérations suivantes :

    • Créer une clé :

      1. Cliquez sur Créer des identifiants > Clé API.
      2. Dans le panneau Créer une clé API, ouvrez la liste Sélectionner des restrictions d'API.
      3. Effacez toutes les API dont cette clé n'a pas besoin et assurez-vous que l'API Places (nouvelle version) reste sélectionnée.
      4. Cliquez sur Créer. Le panneau affiche votre nouvelle clé API.
    • Utiliser une clé existante :

      1. Cliquez sur le nom de la clé.
      2. Dans la liste Sélectionner des restrictions d'API, sélectionnez API Places (New).
      3. Cliquez sur Enregistrer.

    La sélection d'une API ici ne l'active pas. Assurez-vous que l'API Places (nouvelle version) est activée sur la page de la bibliothèque d'API.

  4. Pour afficher la chaîne de clé ultérieurement, accédez à la page Clés et identifiants, puis cliquez sur Afficher la clé pour la clé.

Si la console ne correspond pas à ces étapes, consultez Créer une clé API et Ajouter des restrictions d'API dans la documentation Google Cloud.

gcloud

Remplacez PROJECT_ID par l'ID de votre projet dans les commandes suivantes.

  • Créer une clé : exécutez la commande suivante et remplacez DISPLAY_NAME par le nom de la clé.

    gcloud services api-keys create \
        --project="PROJECT_ID" \
        --display-name="DISPLAY_NAME" \
        --api-target=service=places.googleapis.com

    En savoir plus sur le SDK Google Cloud, l'installation du SDK Cloud et les commandes suivantes :

  • Utiliser une clé existante : exécutez la commande suivante et remplacez KEY_ID par l'ID de la clé. L'option --append conserve les API que la clé autorise déjà. Sans cela, la commande les remplace.

    gcloud services api-keys update KEY_ID \
        --project="PROJECT_ID" \
        --append \
        --api-target=service=places.googleapis.com

    En savoir plus sur le SDK Google Cloud, l'installation du SDK Cloud et les commandes suivantes :

    L'ID de clé n'est pas la chaîne de clé ni le nom à afficher. Pour le trouver, exécutez gcloud services api-keys list --project="PROJECT_ID". L'ID correspond à la dernière partie du champ name : projects/PROJECT_NUMBER/locations/global/keys/KEY_ID.

Pour afficher la chaîne de clé, exécutez gcloud services api-keys get-key-string KEY_ID --project="PROJECT_ID".

Envoyer une requête API

Envoyez une requête à l'API Places (New) pour renvoyer une réponse JSON pour une recherche textuelle sur la chaîne "Spicy Vegetarian Food in Sydney, Australia". Vous devez inclure la chaîne alphanumérique de votre clé API dans chaque requête et utiliser HTTPS pour les requêtes qui incluent la clé API.

  1. Cliquez sur API_KEY dans le code ci-dessous pour insérer la chaîne alphanumérique de la clé :

    curl -X POST -d '{
      "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
    -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
    'https://places.googleapis.com/v1/places:searchText'
  2. Cliquez sur l'icône de copie dans l'exemple de code, Sélectionnez l'icône de copie., pour copier la commande curl.
  3. Collez la commande dans une fenêtre de terminal et exécutez-la.

La réponse est un objet JSON au format suivant :

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

Appliquer des restrictions liées aux clés API

Google vous recommande vivement de restreindre vos clés API en limitant leur utilisation aux seules API et applications qui en ont besoin. Restreindre les clés API vous aide à renforcer la sécurité de votre application en la protégeant contre les requêtes non justifiées. Les clés API sont compatibles avec deux types de restrictions :

  • Restrictions d'API : définissent les SDK et les API qui peuvent être appelés à l'aide de la clé API. La console et la gcloud CLI nécessitent au moins une restriction d'API lorsque vous créez une clé.
  • Les restrictions relatives aux applications spécifient les sites Web, adresses IP ou applications qui peuvent utiliser une clé API.

Pour en savoir plus sur l'application de restrictions, consultez Restreindre vos clés API.

Créer un jeton OAuth

L'API Places (New) est compatible avec OAuth 2.0 pour l'authentification. Google est compatible avec les scénarios OAuth 2.0 courants, tels que les scénarios pour un serveur Web.

Ce document explique comment transmettre un jeton OAuth à un appel de l'API Places (New) dans votre environnement de développement. Pour en savoir plus sur l'utilisation d'OAuth dans un environnement de production, consultez Méthodes d'authentification chez Google.

Vous pouvez appeler les API Google Maps directement en envoyant des requêtes API au serveur, ou utiliser des bibliothèques clientes pour simplifier votre code. Google Maps fournit des bibliothèques clientes pour Go, Java, Node.js et Python. Pour en savoir plus, consultez Bibliothèques clientes de l'API Places (New).

Présentation d'OAuth

Vous pouvez créer et gérer des jetons d'accès avec OAuth de plusieurs manières, en fonction de votre environnement de déploiement.

Vous pouvez utiliser OAuth 2.0 pour les interactions de serveur à serveur entre votre application et un service Google. Dans ce scénario, vous utilisez un compte de service associé à votre application plutôt qu'à un utilisateur individuel. Vous pouvez envoyer des requêtes API à l'aide du compte de service sans impliquer directement les utilisateurs. Pour en savoir plus sur les méthodes d'authentification, consultez Méthodes d'authentification chez Google.

Vous pouvez également intégrer l'API Places (New) dans une application mobile Android ou iOS. Pour en savoir plus sur l'utilisation d'OAuth et la gestion des jetons d'accès pour différents environnements de déploiement, consultez Utiliser OAuth 2.0 pour accéder aux API Google.

Champs d'application OAuth

Pour utiliser OAuth avec l'API Places (nouvelle version), vous devez attribuer au jeton OAuth le champ d'application suivant :

https://www.googleapis.com/auth/cloud-platform

Exemple : Tester des appels d'API REST dans votre environnement de développement local

Si vous ne disposez pas d'un environnement qui génère des jetons et que vous souhaitez essayer l'API Places (New) avec un jeton OAuth, suivez la procédure décrite dans cette section.

Cet exemple explique comment utiliser le jeton OAuth fourni par les identifiants par défaut de l'application (ADC) pour effectuer l'appel. Pour en savoir plus sur l'utilisation des ADC pour appeler des API Google à l'aide de bibliothèques clientes, consultez la page S'authentifier à l'aide de bibliothèques clientes.

Utilisez la procédure REST suivante uniquement pour le développement ou les tests, et non pour la production.

Prérequis

Avant d'effectuer une requête REST à l'aide d'ADC, utilisez la CLI gcloud pour fournir des identifiants à ADC :

  1. Installez et initialisez la CLI gcloud. Pour en savoir plus, consultez Installer la gcloud CLI.

  2. Authentifiez-vous à l'aide de la CLI gcloud :

    gcloud auth application-default login
  3. Terminez le processus de connexion pour enregistrer vos identifiants dans le fichier d'identifiants local utilisé par ADC.

Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local.

Effectuer une requête REST

Dans cet exemple, vous transmettez deux en-têtes de requête :

  • Transmettez le jeton OAuth dans l'en-tête Authorization en utilisant la commande suivante pour générer le jeton :

    gcloud auth application-default print-access-token

    Le jeton renvoyé a un champ d'application de https://www.googleapis.com/auth/cloud-platform.

  • Transmettez l'ID ou le nom de votre projet Google Cloud pour lequel la facturation est activée dans l'en-tête X-Goog-User-Project.

Pour appeler l'API Places (New) à l'aide d'un jeton OAuth, procédez comme suit :

  1. Dans l'exemple de code suivant, remplacez PROJECT_ID par l'ID de votre projet Google Cloud :

    curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "X-Goog-FieldMask: places.displayName,places.formattedAddress" \
    "https://places.googleapis.com/v1/places:searchText"
  2. Pour copier la commande curl, cliquez sur Copier dans l'exemple de code.

  3. Collez la commande dans une fenêtre de terminal, puis exécutez-la.

La réponse est un objet JSON :

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

Dépannage

Si votre requête renvoie un message d'erreur indiquant que cette API n'est pas compatible avec les identifiants d'utilisateur final, consultez Résoudre les problèmes de configuration de vos ADC.

Étape suivante

Maintenant que vous avez activé l'API Places (nouvelle version) et configuré une clé API, consultez À propos de l'API Places (nouvelle version) pour en savoir plus sur l'utilisation de l'API Places (nouvelle version).