Utilizzare OAuth

L'API Route Optimization supporta l'utilizzo di OAuth 2.0 per l'autenticazione. Google supporta scenari OAuth 2.0 comuni, come quelli per un server web.

Questo documento descrive come passare un token OAuth alla chiamata API Route Optimization nel tuo di sviluppo. Per istruzioni sull'utilizzo di OAuth in un di produzione, consulta l'ambiente di produzione, Autenticazione in Google.

Prima di iniziare

Prima di iniziare a utilizzare l'API Route Optimization, è necessario un progetto con un account di fatturazione e l'API Route Optimization abilitate. Consigliamo di creare più Proprietari progetto e Amministratori di fatturazione, in modo da avere sempre qualcuno con questi ruoli disponibili per il tuo team. Per scoprire di più, consulta l'articolo Configurazione nella console Cloud.

Informazioni su OAuth

Esistono molti modi per creare e gestire i token di accesso con OAuth in base al deployment completamente gestito di Google Cloud.

Ad esempio, il sistema Google OAuth 2.0 supporta le interazioni server-server come quelle tra la tua applicazione e un servizio Google. Per questo scenario è necessario un account di servizio, è un account che appartiene alla tua applicazione anziché a un singolo utente finale. Il tuo l'applicazione chiama le API di Google per conto dell'account di servizio, quindi gli utenti non sono coinvolti direttamente. Per ulteriori informazioni sui metodi di autenticazione, vedi Autenticazione in Google.

In alternativa, puoi utilizzare l'API Route Optimization come parte di un'app mobile per Android o iOS. Per informazioni generali sull'utilizzo di OAuth con l'API Route Optimization, comprese informazioni sulla gestione di accesso ai token per diversi ambienti di deployment, consulta Utilizzo di OAuth 2.0 per accedere alle API di Google.

Informazioni sugli ambiti OAuth

Per utilizzare OAuth con l'API Route Optimization, al token OAuth deve essere assegnato l'ambito:

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

Esempio: prova le chiamate API REST nel tuo ambiente di sviluppo locale

Se vuoi provare l'API Route Optimization utilizzando un token OAuth, ma non disponi di un ambiente per generare i token, puoi utilizzare la procedura di questa sezione per effettuare la chiamata.

Questo esempio descrive come utilizzare il token OAuth fornito da Credenziali predefinite dell'applicazione (ADC) per effettuare la chiamata. Per informazioni sull'utilizzo di ADC per chiamare le API di Google utilizzando le librerie client, consulta Esegui l'autenticazione utilizzando le librerie client.

Prerequisiti

Prima di poter effettuare una richiesta REST utilizzando ADC, utilizza Google Cloud CLI per fornire le credenziali ad ADC:

  1. Se non lo hai già fatto, crea un progetto e abilita la fatturazione seguendo i passaggi nella Configurazione nella console Google Cloud.
  2. Installa e inizializza gcloud CLI.
  3. Esegui questo comando gcloud sulla tua macchina locale per creare file delle credenziali:

    gcloud auth application-default login
  4. Viene visualizzata una schermata di accesso. Dopo aver effettuato l'accesso, le tue credenziali vengono memorizzate nella file delle credenziali locali utilizzato da ADC.

Per ulteriori informazioni, vedi Ambiente di sviluppo locale sezione del Fornisci le credenziali per le credenziali predefinite dell'applicazione documentazione.

Effettua una richiesta REST

In questo esempio, vengono passate due intestazioni di richiesta:

  • Trasmetti il token OAuth nell'intestazione Authorization utilizzando quanto segue. per generare il token:

    gcloud auth application-default print-access-token

    Il token restituito ha un ambito https://www.googleapis.com/auth/cloud-platform.

  • Specifica che il tipo di contenuto del corpo della richiesta è application/json.

Nell'esempio seguente viene effettuata una chiamata all'API Route Optimization utilizzando un token 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

Risoluzione dei problemi

Se la tua richiesta restituisce un messaggio di errore che indica che le credenziali dell'utente finale non sono supportate da questa API, consulta Credenziali utente non funzionanti.