La API de Route Optimization 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 Route Optimization en tu development. Para obtener instrucciones sobre cómo usar OAuth en un production, consulta Autenticación en Google.
Antes de comenzar
Antes de comenzar a usar la API de Route Optimization, necesitas una proyecto con una cuenta de facturación y la API de Route Optimization habilitada. Recomendamos crear varios Propietarios del proyecto y administradores de facturación, para que siempre haya alguien con estos roles disponibles para tu equipo. 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 basado en tu implementación en un entorno de nube.
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 este caso, necesitas una cuenta de servicio es una cuenta que pertenece a tu aplicación y no a un usuario final individual. Tu llama a las APIs de Google en nombre de la cuenta de servicio para que los usuarios no participen directamente. 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 Route Optimization como parte de una app para dispositivos móviles para Android o iOS. Para obtener información general sobre el uso de OAuth con la API de Route Optimization, incluida la información sobre cómo administrar tokens de acceso para diferentes entornos de implementación, consulta Usar OAuth 2.0 para acceder a las APIs de Google
Acerca de los permisos de OAuth
Para usar OAuth con la API de Route Optimization, se debe asignar el permiso 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 Route Optimization con un token OAuth, pero no tienes un entorno configuración para generar tokens, puedes usar el procedimiento de esta sección para realizar la llamada.
En este ejemplo, se describe cómo usar el token OAuth proporcionado por 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 Autentica mediante 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 has hecho, 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 tu archivo de credenciales:gcloud auth application-default login
- Se muestra una pantalla de acceso. Luego de acceder, las credenciales se almacenan en la archivo de credenciales local que usa ADC.
Para obtener más información, consulta Entorno de desarrollo local sección de la Proporciona credenciales para las credenciales predeterminadas de la aplicación en la documentación de Google Cloud.
Realiza una solicitud de REST
En este ejemplo, se pasan dos encabezados de solicitud:
Pasa el token de OAuth en el encabezado
Authorization
mediante el siguiente comando: para generar el token:gcloud auth application-default print-access-token
El token devuelto tiene el siguiente alcance:
https://www.googleapis.com/auth/cloud-platform.
- Especifica que el tipo de contenido del cuerpo de la solicitud sea
application/json
.
En el siguiente ejemplo, se realiza una llamada a la API de Route Optimization mediante un token de OAuth:
curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data-binary @- << EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.79581, "longitude": -122.4218856 } } ] } ], "vehicles": [ { "startLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 }, "endLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 } } ], "globalStartTime": "2023-01-13T16:00:00-08:00", "globalEndTime": "2023-01-14T16:00:00-08:00" } } EOM
Soluciona problemas
Si tu solicitud muestra un mensaje de error indicando que las credenciales de usuario final no son compatibles con esta API, Consulta Las credenciales de usuario no funcionan.