Utiliser OAuth

L'API Route Optimization prend en charge l'utilisation d'OAuth 2.0 pour l'authentification. Google accepte les scénarios OAuth 2.0 courants, comme ceux pour un serveur Web.

Ce document explique comment transmettre un jeton OAuth à l'appel de l'API Route Optimization dans votre de développement. Pour obtenir des instructions sur l'utilisation d'OAuth production, consultez Authentification chez Google

Avant de commencer

Avant de commencer à utiliser l'API Route Optimization, vous avez besoin d'un avec un compte de facturation et l'API Route Optimization activée. Nous vous recommandons de créer plusieurs les propriétaires de projet et les administrateurs de la facturation, de sorte que vous ayez toujours quelqu'un avec ces rôles ; disponibles pour votre équipe. Pour en savoir plus, consultez Configurer vos projets dans la console Cloud.

À propos d'OAuth

Il existe de nombreuses façons de créer et de gérer des jetons d'accès avec OAuth en fonction de votre déploiement environnement.

Par exemple, le système Google OAuth 2.0 prend en charge les interactions de serveur à serveur, telles que entre votre application et un service Google. Dans ce scénario, vous avez besoin d'un compte de service, est un compte qui appartient à votre application et non à un utilisateur final individuel. Votre appelle les API Google au nom du compte de service, les utilisateurs ne sont donc pas directement impliqués. Pour en savoir plus sur les méthodes d'authentification, consultez Authentification chez Google

Vous pouvez également utiliser l'API Route Optimization dans une application mobile Android ou iOS. Pour obtenir des informations générales sur l'utilisation du protocole OAuth avec l'API Route Optimization, y compris sur la gestion les jetons d'accès pour différents environnements de déploiement, consultez Utiliser le protocole OAuth 2.0 pour accéder aux API Google

À propos des habilitations OAuth

Pour utiliser OAuth avec l'API Route Optimization, le jeton OAuth doit disposer du champ d'application:

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

Exemple: Essayer les appels d'API REST dans votre environnement de développement local

Si vous souhaitez essayer l'API Route Optimization à l'aide d'un jeton OAuth, mais que vous n'avez pas d'environnement pour générer des jetons, vous pouvez suivre la procédure décrite dans cette section pour effectuer l'appel.

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

Prérequis

Avant de pouvoir envoyer une requête REST à l'aide d'ADC, utilisez la Google Cloud CLI pour fournir les identifiants à ADC:

  1. Si vous ne l'avez pas déjà fait, créez un projet et activez la facturation en suivant les étapes décrites dans l'article Configuration dans la console Google Cloud.
  2. Installez et initialisez gcloud CLI.
  3. Exécutez la commande gcloud suivante sur votre ordinateur local pour créer votre fichier d'identifiants:

    gcloud auth application-default login
  4. Un écran de connexion s'affiche. Une fois que vous êtes connecté, vos identifiants sont stockés dans le fichier d'identification local utilisé par l'ADC.

Pour en savoir plus, consultez Environnement de développement local de la Fournir des identifiants pour les identifiants par défaut de l'application dans la documentation Google Cloud.

Envoyer 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 à l'aide de la commande suivante : pour générer le jeton:

    gcloud auth application-default print-access-token

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

  • Spécifiez que le type de contenu du corps de la requête est application/json.

L'exemple suivant appelle l'API Route Optimization à l'aide d'un jeton OAuth:

curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
--data-binary @- << EOM
{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        }
      }
    ],
    "globalStartTime": "2023-01-13T16:00:00-08:00",
    "globalEndTime": "2023-01-14T16:00:00-08:00"
  }
}
EOM

Dépannage

Si votre requête renvoie un message d'erreur indiquant que les identifiants de l'utilisateur final ne sont pas compatibles avec cette API, Consultez la section Les identifiants utilisateur ne fonctionnent pas.