Effettua le tue prime chiamate API

Per completare i passaggi necessari per effettuare chiamate di base all'API Street View Publishing, segui i passaggi indicati in questo tutorial.

Effettuare chiamate HTTP

È possibile chiamare l'API Street View publish utilizzando diversi strumenti come curl, wget e Postman. Nella maggior parte dei casi, per creare un'applicazione client è consigliabile utilizzare il linguaggio di programmazione che preferisci. che utilizza l'API, ma questo tutorial illustra le nozioni di base guidandoti attraverso comandi individuali.

Forniamo anche alcune librerie client se non quando si desidera effettuare chiamate HTTP dirette.

Prerequisiti

  1. Devi avere un Account Google per accedere alla console API di Google, richiedere una chiave API e registrare la tua applicazione.

  2. Crea un progetto in Google Developers Console e ottieni le credenziali di autorizzazione per consentire alla tua applicazione di inviare richieste API.

  3. Dopo aver creato il progetto, assicurati che l'API Street View publish sia uno dei servizi per cui la tua applicazione è registrata:

    1. Vai alla console API e seleziona il progetto che hai appena registrato.
    2. Visita la pagina API abilitate. Assicurati che l'API Google Street View sia presente nell'elenco delle API abilitate. In caso contrario, apri la libreria API e abilita l'API.
  4. Leggi la guida all'autenticazione per imparare a implementare l'autorizzazione OAuth 2.0.

  5. Acquisisci familiarità con i concetti principali del formato dati JSON (JavaScript Object Notation). JSON è un formato di dati comune, indipendente dal linguaggio, che fornisce una semplice rappresentazione testuale di strutture di dati arbitrarie. Per ulteriori informazioni, visita il sito json.org.

Ottenere una chiave API

Ai fini dell'autenticazione e della quota di spazio di archiviazione, dovrai utilizzare l'API Google Street View publish con le credenziali generate dalla tua Developers Console.

  1. Vai alla pagina Credenziali nella Developers Console.
  2. Se disponi già di una chiave API, puoi utilizzare il relativo valore. Altrimenti, creane una nuova selezionando Chiave API dal menu Nuove credenziali.

Ottenere un token di accesso

  1. Accedi a Google Developers OAuth 2.0 Playground.
  2. Fai clic sul menu delle impostazioni (l'icona a forma di ingranaggio in alto a destra), seleziona Utilizza le tue credenziali OAuth e inserisci i Client ID e Client secret nei campi corrispondenti, poi fai clic su Chiudi.
  3. In Passaggio 1: Seleziona & autorizza le API, inserisci l'ambito API https://www.googleapis.com/auth/streetviewpublish nel campo Inserisci i tuoi ambiti, quindi fai clic su Autorizza API. R si aprirà una nuova pagina per confermare che vuoi autorizzare l'API.
  4. Fai clic su Exchange Authorization code for tokens (Scambia codice di autorizzazione per i token). In questo modo completerai Token di accesso, che conterrà il token di accesso da utilizzare nel al passaggio successivo. Il token di accesso scade dopo 60 minuti. Puoi selezionare l'opzione aggiorna automaticamente il token prima che scada, creandone uno nuovo.

Invia una richiesta HTTP

Dopo aver ottenuto la chiave API e il token di accesso, puoi eseguire questo comando: su una shell per eseguire una chiamata HTTP al servizio. Nell'esempio riportato di seguito, effettua una chiamata al metodo /v1/photo:startUpload.

    $ curl --request POST \
    --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \
    --header 'authorization: Bearer YOUR_ACCESS_TOKEN' \
    --header 'Content-Length: 0'
  

Richieste di esempio

Quando hai acquisito familiarità con l'invio della richiesta HTTP di cui sopra, prova a utilizzare alcune di machine learning. Di seguito è visualizzata una serie di chiamate.

Recupero di un elenco delle tue foto in corso...

    $ curl --request GET \
    --url 'https://streetviewpublish.googleapis.com/v1/photos?key=YOUR_API_KEY' \
    --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
  

Recupero di una foto in corso...

    $ curl --request GET \
    --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \
    --header 'authorization: Bearer YOUR_ACCESS_TOKEN'
  

Caricamento di una foto

Per creare una foto sono necessarie tre chiamate separate. La prima chiamata restituisce un URL di caricamento, che verrà utilizzato nella seconda chiamata per caricare i byte di foto. Una volta caricati i byte di foto, Nella terza chiamata vengono caricati i metadati della foto e viene restituito il documento d'identità.

  1. Richiedi un URL di caricamento
            $ curl --request POST \
            --url 'https://streetviewpublish.googleapis.com/v1/photo:startUpload?key=YOUR_API_KEY' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
            --header 'Content-Length: 0'
          
  2. Carica i byte della foto nell'URL di caricamento
            $ curl --request POST \
            --url 'UPLOAD_URL' \
            --upload-file 'PATH_TO_FILE' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
          
  3. Carica i metadati della foto
            $ curl --request POST \
            --url 'https://streetviewpublish.googleapis.com/v1/photo?key=YOUR_API_KEY' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
            --header 'Content-Type: application/json' \
            --data '{
                      "uploadReference":
                      {
                        "uploadUrl": "UPLOAD_URL"
                      },
                      "pose":
                       {
                         "heading": 105.0,
                         "latLngPair":
                         {
                           "latitude": 46.7512623,
                           "longitude": -121.9376983
                         }
                      },
                      "captureTime":
                      {
                        "seconds": 1483202694
                      },
                    }'
          

Aggiornamento di una foto

   $ curl --request PUT \
    --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY&updateMask=pose.latLngPair' \
    --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
     --header 'Content-Type: application/json' \
     --data '{
               "pose":
               {
                 "latLngPair":
                 {
                   "latitude": 46.7512624,
                   "longitude": -121.9376982
                 }
               }
             }'
  

Aggiornamento collettivo di più foto

   $ curl --request POST \
    --url 'https://streetviewpublish.googleapis.com/v1/photos:batchUpdate?key=YOUR_API_KEY' \
    --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
     --header 'Content-Type: application/json' \
     --data '{
              "updatePhotoRequests": [
                  {
                      "photo": {
                          "photoId": {
                              "id": "FIRST_PHOTO_ID"
                          },
                          "pose": {
                              "latLngPair": {
                                  "latitude": 37.1701638,
                                  "longitude": -122.3624387
                              }
                          }
                      },
                      "updateMask": "pose.latLngPair"
                  },
                  {
                      "photo": {
                          "photoId": {
                              "id": "SECOND_PHOTO_ID"
                          },
                          "pose": {
                              "latLngPair": {
                                  "latitude": 37.1685704,
                                  "longitude": -122.3618021
                              }
                          }
                      },
                      "updateMask": "pose.latLngPair"
                  }
              ]
          }'
  

Eliminazione di una foto

    $ curl --request DELETE \
    --url 'https://streetviewpublish.googleapis.com/v1/photo/PHOTO_ID?key=YOUR_API_KEY' \
    --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
  

Che cos'è updateMask?

updateMask è un modo per ridurre le richieste se vuoi aggiornare parte della foto invece di tutte. Senza updateMask, la tua richiesta aggiorna il un'intera foto. Ciò significa che se non imposti updateMask e la tua richiesta viene pose mancante, i valori pose della foto verranno cancellati. Alcuni valori possibili per updateMask sono: places, pose.heading, pose.latlngpair, pose.level, connections. Puoi inserire più valori delimitati da virgole in updateMask.