Configurare l'API Places (novità)

Sviluppatori dello Spazio economico europeo (SEE)

Questo documento descrive i passaggi necessari per iniziare a utilizzare l'API Places (nuova).

Prerequisiti

Questa procedura ti guida nella configurazione di un account Google Cloud e di un progetto cloud Google con la fatturazione abilitata. Dovresti anche avere familiarità con il modo in cui ti vengono addebitati i costi per l'utilizzo dell'API Places (nuova).

  1. Esamina la fatturazione e il costo per l'utilizzo in Utilizzo e fatturazione dell'API Places (nuova).
  2. Verifica di avere un account Google Cloud.

    Accedi alla console Google Cloud
  3. Verifica di avere un progetto Google Cloud con la fatturazione abilitata.

    Vai alla pagina Fatturazione
    1. Seleziona il tuo progetto per aprire la pagina Fatturazione.
    2. Nella pagina Fatturazione:

      • Se la fatturazione è già abilitata per il progetto selezionato e hai un solo account di fatturazione, si apre la pagina Fatturazione.
      • Se hai più account di fatturazione, seleziona Vai all'account di fatturazione collegato per visualizzare i dettagli dell'account di fatturazione associato al progetto.
      • Se esiste un account di fatturazione, ma non è associato al progetto, ti verrà chiesto di collegare un account di fatturazione al progetto.
      • Se non esiste un account di fatturazione o se vuoi crearne uno nuovo, seleziona Gestisci account di fatturazione per creare un nuovo account di fatturazione. Per saperne di più, consulta Crea un nuovo account di fatturazione Cloud self-service.

Abilita l'API

Prima di poter utilizzare l'API Places (nuova), devi abilitarla nel tuo progetto Google Cloud utilizzando la console Google Cloud o il comando gcloud.

Per abilitare l'API:

Console

  1. Apri la pagina di prodotto nella console Google Cloud:

    Abilita l'API Places (nuova)
  2. Fai clic sul pulsante Abilita.

gcloud

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

Scopri di più su Google Cloud SDK, sull'installazione di Cloud SDK e sui seguenti comandi:

Ottieni una chiave API da utilizzare con l'API Places (novità)

I prodotti Google Maps Platform sono protetti dall'utilizzo non autorizzato richiedendo che le chiamate API includano una chiave API o un token OAuth. La procedura per la chiave API è la prima. Per utilizzare un token OAuth, consulta Crea un token OAuth.

Una chiave API è una stringa alfanumerica univoca che associa il tuo account di fatturazione Cloud e il tuo progetto cloud Google Cloud alla richiesta effettuata dalla tua applicazione a un'API o un SDK di Google Maps Platform. Per creare una nuova chiave o aggiungere un'API o un SDK a una chiave esistente, segui queste istruzioni.

Console

  1. Vai alla pagina Google Maps Platform > Chiavi e credenziali.

    Vai alla pagina Chiavi e credenziali

  2. Se richiesto, seleziona il progetto.
  3. Procedi in uno dei seguenti modi:

    • Crea una nuova chiave:

      1. Fai clic su Crea credenziali > Chiave API.
      2. Nel riquadro Crea chiave API, apri l'elenco Seleziona limitazioni dell'API.
      3. Cancella tutte le API che non sono necessarie per questa chiave e assicurati che l'API Places (novità) rimanga selezionata.
      4. Fai clic su Crea. Nel riquadro viene visualizzata la nuova chiave API.
    • Utilizza una chiave esistente:

      1. Fai clic sul nome della chiave.
      2. Nell'elenco Seleziona limitazioni dell'API, seleziona API Places (novità).
      3. Fai clic su Salva.

    La selezione di un'API qui non la abilita. Assicurati che l'API Places (novità) sia abilitata nella relativa pagina della libreria API.

  4. Per visualizzare la stringa della chiave in un secondo momento, vai alla pagina Chiavi e credenziali e fai clic su Mostra chiave per la chiave.

Se la console ha un aspetto diverso da questi passaggi, consulta Crea una chiave API e Aggiungi limitazioni API nella documentazione di Google Cloud.

gcloud

Sostituisci PROJECT_ID con l'ID progetto nei comandi seguenti.

  • Crea una nuova chiave: esegui il comando seguente e sostituisci DISPLAY_NAME con un nome per la chiave.

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

    Scopri di più su Google Cloud SDK, sull'installazione di Cloud SDK e sui seguenti comandi:

  • Utilizza una chiave esistente: esegui il comando seguente e sostituisci KEY_ID con l'ID della chiave. Il flag --append mantiene le API già consentite dalla chiave. In caso contrario, il comando le sostituisce.

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

    Scopri di più su Google Cloud SDK, sull'installazione di Cloud SDK e sui seguenti comandi:

    L'ID chiave non è la stringa della chiave o il nome visualizzato. Per trovarlo, esegui gcloud services api-keys list --project="PROJECT_ID". L'ID è l'ultima parte del campo name: projects/PROJECT_NUMBER/locations/global/keys/KEY_ID.

Per visualizzare la stringa della chiave, esegui gcloud services api-keys get-key-string KEY_ID --project="PROJECT_ID".

Effettua una richiesta API

Effettua una richiesta all'API Places (nuova) per restituire una risposta JSON per una ricerca testuale sulla stringa "Spicy Vegetarian Food in Sydney, Australia". Devi includere la stringa alfanumerica della chiave API in ogni richiesta e utilizzare HTTPS per le richieste che includono la chiave API.

  1. Fai clic su API_KEY nel codice di seguito per inserire la stringa alfanumerica della chiave:

    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. Fai clic sull'icona di copia nell'esempio di codice, Seleziona l'icona di copia., per copiare il comando curl.
  3. Incolla il comando in una finestra del terminale ed eseguilo.

La risposta è un oggetto JSON nel formato:

{
  "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"
        },
  ...
}

Applica le limitazioni relative alle chiavi API

Google consiglia vivamente di limitare le chiavi API limitandone l'utilizzo solo alle API e alle app che ne hanno bisogno. La limitazione delle chiavi API aggiunge sicurezza alla tua applicazione proteggendola da richieste ingiustificate. Le chiavi API supportano due tipi di limitazioni:

  • Le restrizioni delle API specificano quali SDK e API possono essere chiamati utilizzando la chiave API. La console e gcloud CLI richiedono almeno una restrizione API quando crei una chiave.
  • Le restrizioni delle applicazioni specificano i siti web, gli indirizzi IP o le app che possono utilizzare una chiave API.

Per saperne di più sull'applicazione delle limitazioni, consulta Limita le chiavi API.

Crea un token OAuth

L'API Places (nuova) supporta OAuth 2.0 per l'autenticazione. Google supporta scenari OAuth 2.0 comuni, ad esempio per un server web.

Questo documento descrive come passare un token OAuth a una chiamata API Places (nuova) nel tuo ambiente di sviluppo. Per saperne di più sull'utilizzo di OAuth in un ambiente di produzione, consulta Metodi di autenticazione di Google.

Puoi chiamare le API di Google Maps direttamente inviando richieste API al server oppure puoi utilizzare le librerie client per semplificare il codice. Google Maps fornisce librerie client per Go, Java, Node.js e Python. Per saperne di più, consulta Librerie client dell'API Places (nuova).

Panoramica di OAuth

Puoi creare e gestire i token di accesso con OAuth in diversi modi, a seconda dell'ambiente di deployment.

Puoi utilizzare OAuth 2.0 per le interazioni server-to-server tra la tua applicazione e un servizio Google. Per questo scenario, utilizzi un service account associato alla tua applicazione anziché a un singolo utente. Puoi effettuare richieste API utilizzando il service account senza coinvolgere direttamente gli utenti. Per saperne di più sui metodi di autenticazione, consulta Metodi di autenticazione di Google.

In alternativa, puoi integrare l'API Places (nuova) in un'app mobile Android o iOS. Per ulteriori informazioni sull'utilizzo di OAuth e sulla gestione dei token di accesso per diversi ambienti di deployment, consulta Utilizzare OAuth 2.0 per accedere alle API di Google.

Ambiti OAuth

Per utilizzare OAuth con l'API Places (nuova), devi assegnare al token OAuth il seguente ambito:

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

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

Se non hai un ambiente che genera token e vuoi provare l'API Places (nuova) con un token OAuth, utilizza la procedura descritta in questa sezione.

Questo esempio descrive come utilizzare il token OAuth fornito dalle Credenziali predefinite dell'applicazione (ADC) per effettuare la chiamata. Per saperne di più sull'utilizzo di ADC per chiamare le API di Google con le librerie client, consulta Autenticati utilizzando le librerie client.

Utilizza la seguente procedura REST solo per lo sviluppo o i test, non per la produzione.

Prerequisiti

Prima di effettuare una richiesta REST utilizzando ADC, utilizza l'interfaccia a riga di comando gcloud per fornire le credenziali ad ADC:

  1. Installa e inizializza l'interfaccia a riga di comando gcloud. Per saperne di più, consulta Installa gcloud CLI.

  2. Esegui l'autenticazione con l'interfaccia a riga di comando gcloud:

    gcloud auth application-default login
  3. Completa la procedura di accesso per salvare le tue credenziali nel file delle credenziali locali utilizzato da ADC.

Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale.

Effettua una richiesta REST

In questo esempio, passi due intestazioni della richiesta:

  • Passa il token OAuth nell'intestazione Authorization utilizzando il seguente comando per generare il token:

    gcloud auth application-default print-access-token

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

  • Passa l'ID o il nome del tuo progetto cloud Google Cloud con la fatturazione abilitata nell'intestazione X-Goog-User-Project.

Per chiamare l'API Places (nuova) utilizzando un token OAuth, completa i seguenti passaggi:

  1. Nel seguente esempio di codice, sostituisci PROJECT_ID con l'ID progetto 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. Per copiare il comando curl, fai clic su Copia nell'esempio di codice.

  3. Incolla il comando in una finestra del terminale, quindi eseguilo.

La risposta è un oggetto 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"
        },
  ...
}

Risoluzione dei problemi

Se la richiesta restituisce un messaggio di errore che indica che questa API non supporta le credenziali dell'utente finale, consulta Risolvi i problemi di configurazione di ADC.

Passaggi successivi

Ora che hai attivato l'API Places (nuova) e configurato una chiave API, consulta Informazioni sull'API Places (nuova) per scoprire di più su come utilizzare l'API Places (nuova).