La API de Places (versión nueva) admite el uso de OAuth 2.0 para la autenticación. Google admite situaciones comunes de OAuth 2.0, como las de un servidor web.
En este documento, se describe cómo pasar un token de OAuth a la llamada a la API de Places (nueva) en tu entorno de desarrollo. Si necesitas instrucciones para usar OAuth en un entorno de producción, consulta Autenticación en Google.
Antes de comenzar
Antes de comenzar a usar la API de Places (versión nueva), debes tener un proyecto con una cuenta de facturación y la API de Places (nueva). Recomendamos crear varios propietarios del proyecto y administradores de facturación para que tu equipo siempre tenga a alguien disponible con estos roles. Si deseas obtener más información, consulta Set up in Cloud Console.
Acerca de OAuth
Existen muchas formas de crear y administrar tokens de acceso con OAuth según tu entorno de implementación.
Por ejemplo, el sistema Google OAuth 2.0 admite interacciones servidor a servidor, como las entre tu aplicación y un servicio de Google. Para esta situación, necesitas una cuenta de servicio, que es una cuenta que pertenece a tu aplicación en lugar de un usuario final individual. Tu aplicación llama a las APIs de Google en nombre de la cuenta de servicio, por lo que los usuarios no están involucrados de forma directa. Para obtener más información sobre los métodos de autenticación, consulta Autenticación en Google.
Como alternativa, puedes usar la API de Places (nuevo) como parte de una app para dispositivos móviles en iOS o Android. Si deseas obtener información general sobre el uso de OAuth con la API de Places (nuevo), incluida la administración de tokens de acceso para diferentes entornos de implementación, consulta Usa OAuth 2.0 para acceder a las API de Google.
Acerca de los permisos de OAuth
Para utilizar OAuth con la API de Places (versión nueva), se debe asignar el alcance al token de OAuth:
https://www.googleapis.com/auth/cloud-platform
Ejemplo: Prueba las llamadas a la API de REST en tu entorno de desarrollo local
Si quieres probar la API de Places (versión nueva) con un token de OAuth, pero no tienes una configuración de entorno que genere tokens, puedes usar el procedimiento que se indica en esta sección para realizar la llamada.
En este ejemplo, se describe cómo usar el token de OAuth que proporcionan las credenciales predeterminadas de la aplicación (ADC) para realizar la llamada. Si deseas obtener información sobre el uso de ADC para llamar a las APIs de Google con bibliotecas cliente, consulta Autenticación con bibliotecas cliente.
Requisitos previos
Antes de realizar una solicitud de REST con ADC, usa Google Cloud CLI para proporcionar credenciales a ADC:
- Si aún no lo hiciste, crea un proyecto y habilita la facturación siguiendo los pasos que se indican en Configuración en la consola de Google Cloud.
- Instala e inicializa gcloud CLI
Ejecuta el siguiente comando
gcloud
en tu máquina local para crear el archivo de credenciales:gcloud auth application-default login
- Se muestra una pantalla de acceso. Después de acceder, tus credenciales se almacenan en el archivo de credenciales local que usa ADC.
Para obtener más información, consulta la sección Entorno de desarrollo local de la documentación Proporciona credenciales para las credenciales predeterminadas de la aplicación.
Realiza una solicitud de REST
En este ejemplo, debes pasar dos encabezados de solicitud:
Pasa el token de OAuth en el encabezado
Authorization
con el siguiente comando para generarlo:gcloud auth application-default print-access-token
El token que se muestra tiene un permiso de
https://www.googleapis.com/auth/cloud-platform.
- Pasa el ID o el nombre del proyecto de Google Cloud que tiene la facturación habilitada en el encabezado
X-Goog-User-Project
. Si deseas obtener más información, consulta el artículo Configuración en la consola de Cloud.
En el siguiente ejemplo, se realiza una llamada a la API de Places (nuevo) con un token OAuth:
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"
Solución de problemas
Si tu solicitud muestra un mensaje de error que indica que las credenciales de usuario final no son compatibles con esta API, consulta Las credenciales de usuario no funcionan.