Effectuer vos premiers appels d'API

Pour effectuer les appels de base vers l'API Street View Publish, suivez la procédure indiquée dans ce tutoriel.

Effectuer des appels HTTP

L'API Street View Publish peut être appelée à l'aide de plusieurs outils tels que curl, wget et Postman. Dans la plupart des cas, vous devrez utiliser le langage de programmation de votre choix pour créer une application cliente qui utilise l'API. Toutefois, ce tutoriel vous explique les bases en vous indiquant les différentes commandes.

Nous fournissons également des bibliothèques clientes si vous ne souhaitez pas effectuer d'appels HTTP directs.

Prérequis

  1. Vous devez disposer d'un compte Google pour accéder à la console Google APIs, demander une clé API et enregistrer votre application.

  2. Créez un projet dans la Google Developers Console et obtenez des identifiants d'autorisation pour que votre application puisse envoyer des requêtes API.

  3. Après avoir créé votre projet, assurez-vous que l'API Street View Publish est l'un des services enregistrés pour votre application:

    1. Accédez à la console API, puis sélectionnez le projet que vous venez d'enregistrer.
    2. Accédez à la page API activées. Assurez-vous que l'API Google Street View figure dans la liste des API activées. Si ce n'est pas le cas, ouvrez la bibliothèque d'API et activez l'API.
  4. Consultez le guide sur l'authentification pour découvrir comment mettre en œuvre l'autorisation OAuth 2.0.

  5. Familiarisez-vous avec les concepts fondamentaux du format de données JSON (JavaScript Object Notation). JSON est un format de données commun qui ne dépend pas du langage et qui fournit une représentation textuelle simple de structures de données arbitraires. Pour en savoir plus, accédez à json.org.

Obtenir une clé API

Pour l'authentification et les quotas, vous devez utiliser l'API Google Street View Publish avec les identifiants générés à partir de votre Developers Console.

  1. Accédez à la page Identifiants de la Developers Console.
  2. Si vous disposez déjà d'une clé API, vous pouvez utiliser sa valeur. Sinon, créez-en une en sélectionnant Clé API dans le menu Nouveaux identifiants.

Obtenir un jeton d'accès

  1. Accédez à Google Developers OAuth 2.0 Playground.
  2. Cliquez sur le menu des paramètres (icône en forme de roue dentée en haut à droite), cochez Use your own OAuth credentials (Utiliser vos propres identifiants OAuth), saisissez vos identifiants Client ID et Client secret dans les champs correspondants, puis cliquez sur Close (Fermer).
  3. Sous Étape 1: Sélectionnez & allow APIs (Saisir des API), saisissez le champ d'application de l'API https://www.googleapis.com/auth/streetviewpublish dans le champ Input your own scopes (Saisir vos propres champs d'application), puis cliquez sur Authorize APIs (Autoriser les API). Une nouvelle page s'ouvre pour confirmer que vous souhaitez autoriser l'API.
  4. Cliquez sur Échanger des codes d'autorisation contre des jetons. Le champ Jeton d'accès, qui contient le jeton d'accès, sera utilisé à l'étape suivante. Le jeton d'accès expire au bout de 60 minutes. Vous pouvez sélectionner l'option permettant d'actualiser automatiquement le jeton avant son expiration. Un nouveau jeton sera alors créé.

Envoyer une requête HTTP

Une fois que vous disposez de votre clé API et de votre jeton d'accès, vous pouvez exécuter la commande suivante sur une interface système pour effectuer un appel HTTP au service. Dans l'exemple ci-dessous, nous appelons la méthode /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'
  

Exemples de requête

Une fois que vous savez comment envoyer la requête HTTP ci-dessus, essayez d'utiliser d'autres méthodes. Plusieurs appels sont affichés ci-dessous.

Obtenir la liste de vos photos

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

Récupération d'une photo...

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

Importation d'une photo...

La création d'une photo nécessite trois appels distincts. Le premier appel renvoie une URL d'importation, qui est utilisée dans le second pour importer les octets de photo. Une fois les octets de la photo importés, le troisième appel importe les métadonnées de la photo et renvoie l'ID de la photo.

  1. Demander une URL d'importation
            $ 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. Importez les octets de la photo dans l'URL d'importation
            $ curl --request POST \
            --url 'UPLOAD_URL' \
            --upload-file 'PATH_TO_FILE' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
          
  3. Importez les métadonnées de la photo
            $ 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
                      },
                    }'
          

Mise à jour d'une photo

   $ 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
                 }
               }
             }'
  

Mise à jour groupée de plusieurs photos

   $ 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"
                  }
              ]
          }'
  

Supprimer une photo

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

Qu'est-ce que updateMask ?

updateMask permet de réduire le nombre de requêtes si vous souhaitez mettre à jour une partie seulement de la photo. Sans updateMask, votre requête met à jour l'ensemble de la photo. Cela signifie que si vous ne définissez pas updateMask et que votre requête ne comporte pas d'élément pose, votre pose sera effacé. Voici des valeurs possibles pour updateMask : places, pose.heading, pose.latlngpair, pose.level, connections. Vous pouvez saisir plusieurs valeurs séparées par une virgule dans updateMask.