Realiza tus primeras llamadas a la API

Si deseas completar los pasos necesarios para realizar llamadas básicas a la API de Street View Publish, sigue los pasos de este instructivo.

Cómo realizar llamadas HTTP

Se puede llamar a la API de Street View Publish mediante varias herramientas, como curl, wget y Postman. En la mayoría de los casos, querrás usar el lenguaje de programación que elijas para compilar una aplicación cliente. que usa la API, pero este instructivo te guiará a través de los conceptos básicos comandos individuales.

Si no lo haces, también proporcionamos algunas bibliotecas cliente desean hacer llamadas HTTP directas.

Requisitos previos

  1. Necesitas una Cuenta de Google para acceder a la Consola de APIs de Google, solicitar una clave de API y registrar tu aplicación.

  2. Crea un proyecto en Google Developers Console y obtén credenciales de autorización para que la aplicación pueda enviar solicitudes de API.

  3. Después de crear tu proyecto, asegúrate de que la API de Street View Publish sea uno de los servicios para los que tu aplicación está registrada para usar:

    1. Ve a la Consola de API y selecciona el proyecto que acabas de registrar.
    2. Visita la página de APIs habilitadas. Asegúrate de que la API de Google Street View esté en la lista de APIs habilitadas. De lo contrario, abre la Biblioteca de APIs y habilítala.
  4. Lee la guía de autenticación para saber cómo se implementa la autorización de OAuth 2.0.

  5. Aprende los conceptos básicos del formato de datos de JavaScript Object Notation (JSON). JSON es un formato de datos común e independiente del lenguaje que proporciona una representación de texto simple de estructuras de datos arbitrarias. Para obtener más información, visita la página json.org.

Cómo obtener una clave de API

Para fines de autenticación y cuota, deberás usar la API de Google Street View Publish con credenciales generadas desde tu Developers Console.

  1. Ve a Credenciales. en Play Console.
  2. Si ya tienes una clave de API, puedes usar su valor. De lo contrario, selecciona Clave de API en el menú Credenciales nuevas para crear una nueva.

Cómo obtener un token de acceso

  1. Ve a Google Developers OAuth 2.0 Playground.
  2. Haz clic en el menú de configuración (ícono de ajustes en la parte superior derecha), selecciona Usa tus propias credenciales de OAuth y, luego, ingresa tu Client ID. Client secret en los campos correspondientes y, luego, haz clic en Cerrar.
  3. En Paso 1: Selecciona y autorizar APIs, ingresa el permiso de la API https://www.googleapis.com/auth/streetviewpublish en el campo Input your own scope y, luego, haz clic en Authorize APIs. R se abrirá una página nueva para confirmar que deseas autorizar la API.
  4. Haz clic en Intercambiar código de autorización para tokens. Esto completará el Token de acceso, que contendrá el token de acceso que se usará en la el próximo paso. El token de acceso vence en 60 minutos. Puedes seleccionar la opción para actualiza automáticamente el token antes de que caduque, lo que creará un token nuevo.

Envía una solicitud HTTP

Una vez que tienes la clave de API y el token de acceso, puedes ejecutar el siguiente comando en un shell para realizar una llamada HTTP al servicio. En el siguiente ejemplo, Realiza una llamada al método /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'
  

Ejemplos de solicitudes

Una vez que te sientas a gusto con el envío de la solicitud HTTP anterior, intenta usar algunas . A continuación, se muestran una variedad de llamadas.

Obteniendo una lista de tus fotos

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

Obteniendo una foto

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

Subir una foto

Para crear una foto, se requieren tres llamadas independientes. La primera llamada mostrará una URL de carga, que se usa en la segunda llamada para subir los bytes de la foto. Después de que se suben los bytes de las fotos, la tercera llamada sube los metadatos de la foto y devuelve el ID con foto.

  1. Solicita una URL de carga
            $ 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. Sube los bytes de la foto a la URL de carga
            $ curl --request POST \
            --url 'UPLOAD_URL' \
            --upload-file 'PATH_TO_FILE' \
            --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
          
  3. Sube los metadatos de la 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
                      },
                    }'
          

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

Actualización por lotes de varias fotos

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

Eliminar una foto

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

¿Qué es updateMask?

updateMask es una forma de mantener pequeñas solicitudes si quieres actualizar parte de tu foto en lugar de todo. Sin updateMask, tu solicitud actualiza la foto completa. Esto significa que, si no estableces updateMask y tu solicitud se Faltan pose, se borrarán las pose de tu foto. Algunos valores posibles para updateMask son: places, pose.heading, pose.latlngpair, pose.level, connections. Puedes colocar varios valores delimitados por comas en updateMask.