Cómo solucionar problemas de autorización de URL del plan premium de las API de Google Maps

Dónde administrar tu ID de cliente en Google Cloud Console

La funcionalidad de administración de ID de clientes del plan premium está migrando desde el Portal de asistencia a Cloud Console en la página Credenciales de Maps, en la sección Cuentas de servicio.

La nueva área de ID de cliente en la página Credenciales

Nota: El plan premium de Google Maps Platform ya no está disponible para registros o clientes nuevos.

El uso de los ID de cliente del plan premium de Google Maps Platform está restringido a URL autorizadas específicamente. Si intentas usarlos en URL no autorizadas, recibirás un mensaje de error.

Este artículo está dirigido a los clientes del plan premium de Google Maps Platform que experimentan este problema y deben encontrar la URL exacta que se debe autorizar.

Conceptos básicos

Para evitar que terceros usen tu ID de cliente en su sitio web, solo podrán usarlo una serie de URL que debes autorizar. Cada URL puede tener la misma especificidad que una única página web o ser tan genérica como un dominio entero.

Para obtener una lista de tus URL autorizadas o autorizar URL adicionales, ve a la página Credenciales y desplázate hasta ID de cliente.

Puedes agregar hasta 100 URL a la vez. Un ID de cliente se puede asociar con hasta 3,000 URL autorizadas. Si esperas que tu aplicación aloje contenido de Google Maps de más de 3,000 ubicaciones, debes comenzar a utilizar claves de API.

Si deseas obtener más información sobre cómo autorizar diferentes URL, consulta la Guía para desarrolladores.

El problema

Una aplicación que reside en una URL no autorizada para tu ID de cliente no podrá usar Google Maps Platform con este ID. Si un usuario intenta usar dicha aplicación, recibirá un mensaje de error, según la API específica que esta intente cargar. Los usuarios no podrán usar funciones que dependan de la API de Maps JavaScript.

  • La API de Maps JavaScript mostrará este mensaje:

    Esta página no pudo mostrar un elemento de Google Maps. La URL no tiene autorización para usar el ID de cliente de Google Maps proporcionado. Código de error: UnauthorizedURLForClientIdMapError

  • Si usas la API de Maps JavaScript versión 3.18 o una anterior, se mostrará el siguiente mensaje:

    Google inhabilitó el uso de Google Maps Platform para esta aplicación. Este sitio no tiene autorización para usar el ID de cliente de Google Maps proporcionado. Si eres el propietario de esta aplicación, puedes obtener más información sobre cómo registrar las URL en la Guía para desarrolladores.

La eliminación del ID de cliente de la aplicación no es una corrección válida*. Al hacerlo, perderás todos los privilegios del plan premium de Google Maps Platform para esa aplicación. Esto significa que no tendrás derecho a ninguno de los siguientes servicios:

  • Un buen Acuerdo de Nivel de Servicio (ANS)
  • Asistencia al cliente
  • Mayores límites para servicios web
  • Términos y Condiciones a nivel comercial
  • Asistencia para aplicaciones de intranet en tu entorno de trabajo

Es decir que las aplicaciones que son solo internas o que no son gratuitas, y no usan de manera correcta un ID de cliente del plan premium de Google Maps Platform válido no satisfarán las Condiciones del Servicio estándares de Google Maps Platform.

La solución

La solución correcta consiste en encontrar y autorizar las URL adecuadas para usar tu ID de cliente.

En la mayoría de los casos, debes autorizar una aplicación para que use tu ID de cliente. A menudo, las aplicaciones usan varias URL que comparten un patrón común, p. ej., un localizador de tiendas puede alojarse en example.com/stores o en stores.example.com. Debes encontrar una URL que coincida con todas las URL que usa tu aplicación.

Nota: La autorización de www.example.com no autorizará stores.example.com ni ningún otro subdominio de example.com.

Cada URL que autorices puede tener la misma especificidad que una única página web o ser tan genérica como un dominio entero, incluidos sus subdominios. Consulta la Guía para desarrolladores si deseas obtener más información. Recomendamos autorizar las URL que coinciden con un conjunto bastante amplio de URL, siempre y cuando las administres.

Nota: Recomendamos no autorizar un dominio completo, a menos que tu organización tenga control total sobre todo el contenido de ese dominio. Por ejemplo, autorizar el dominio blogspot.com completo permitiría que todos usen tu ID de cliente (a costa tuya) desde ese dominio. Sin embargo, te recomendamos autorizar solo un blog específico, como googlegeodevelopers.blogspot.com, o incluso una página específica en ese blog.

Cómo encontrar la URL correcta

Por lo general, encontrarás la URL en la barra de ubicación de tu navegador. En sitios web públicos que no usan etiquetas <iframe>, esto suele ser fácil. Si tienes dudas, puedes usar el enfoque que aparece a continuación, para verificar esto.

Las aplicaciones complejas pueden cargar Google Maps Platform a partir de una URL que no sea la que se encuentra en la barra de ubicación del usuario. Esto sucede con las etiquetas <iframe> o cuando la URL de la página que carga las API se genera dinámicamente en el servidor y, luego, se envía al navegador. Para encontrar las URL correctas en estos casos, se deben inspeccionar determinadas solicitudes HTTP del navegador a servidores de Google.

La URL que debe autorizarse es la del encabezado Referer para las solicitudes que el navegador envía a Google a fin de cargar la API. Cada API se carga desde una URL diferente:

Todas las solicitudes a maps.googleapis.com se pueden enviar a maps.google.com o maps-api-ssl.google.com, según cómo esté configurada la aplicación para cargar la API. Por lo tanto, al buscar las solicitudes anteriores, lo que importa, por lo general, es la ruta de acceso (en negrita).

En los encabezados HTTP de tu navegador

Antes de poder inspeccionar el encabezado Referer en las solicitudes anteriores, primero debes capturarlo en tu navegador. Se encuentran disponibles varias herramientas gratuitas para capturar los encabezados HTTP en todos los navegadores principales:

Nota: Tienes que configurar Fiddler2 para capturar el tráfico HTTPS. Consulta los detalles aquí.

Si no puedes capturar encabezados HTTP directamente desde el navegador, puedes intentar capturar el tráfico HTTP con un analizador de protocolo de red como Wireshark. El funcionamiento de esta herramienta puede ser más complejo que el de las anteriores. Consulta algunos instructivos de Wireshark en la Web si no sabes cómo se utiliza.

Una vez que tengas la herramienta que prefieras, sigue estos pasos para encontrar la URL que debe autorizarse:

  1. Inicia la herramienta de captura. Asegúrate de que capture las solicitudes HTTP desde tu navegador.
  2. Orienta tu navegador a la aplicación que no puede cargar Google Maps Platform con tu ID de cliente. Deberías recibir uno de los mensajes de error antes descritos.
  3. Detén la captura de tráfico HTTP. Esto facilita la inspección del tráfico capturado.
  4. Encuentra la solicitud que intenta cargar Google Maps Platform con tu ID de cliente. Por ejemplo, si tu aplicación intenta cargar la API de Maps JavaScript, busca una solicitud como la siguiente:
    GET /maps/api/js?client=gme-yourclientid HTTP/1.1
  5. Los encabezados de solicitudes HTTP aparecen inmediatamente después de esa línea, sin saltos de línea. Encuentra uno como el siguiente:
    Referer: http://www.example.com/stores/find?zip=94043
  6. La URL de esa línea es la que se debe autorizar para usar tu ID de cliente.

En la Consola de JavaScript de tu navegador

Si usas tu clave de API o ID de cliente en un sitio que no está autorizado, la API de Maps JavaScript escribe mensajes de error en window.console. Puedes encontrar la URL correcta en el mensaje de error. En la Consola, busca mensajes de error como este:

Google Maps Platform error: UnauthorizedURLForClientIdMapError ...
Your site URL to be authorized: http://www.example.com/stores/find?zip-94043

Para obtener ayuda en la búsqueda de mensajes de error, consulta la sección sobre cómo verificar errores en tu navegador.

A partir de un patrón común

A fin de asegurarte de que toda la aplicación pueda cargar Google Maps Platform con tu ID de cliente, debes encontrar un patrón común en todas las URL que la aplicación usa y autorizar una que lo represente. Para ello, sigue las reglas que se explican en la Guía para desarrolladores.

A menudo, esto se limita simplemente a un directorio (p. ej., example.com/stores) o un subdominio (p. ej., stores.example.com). Por lo general, la deducción puede realizarse fácilmente con solo un par de URL.

Cuando trabajes con aplicaciones complejas, es posible que debas repetir los pasos anteriores con varias URL para el usuario que muestren un mapa. Sin embargo, esto puede requerir demasiado trabajo y aun así dar como resultado un conjunto incompleto de URL. Para dicha aplicación, sus desarrolladores posiblemente sean los indicados para proporcionar el patrón de URL.