usando - google maps javascript api warning noapikeys
API de JavaScript de Google Maps RefererNotAllowedMapError (25)
-
Que tu facturación está habilitada
-
Que su sitio web ha sido agregado a Google Console
-
Que su sitio web se agregue a los referentes en su aplicación.
-
(hacer un comodín para www y ninguno www)
http://www.example.com/ * y http://example.com/ *
-
Que Javascript Maps está habilitado y está utilizando las credenciales correctas
-
Que el sitio web se ha agregado a su DNS para habilitar su Google Console arriba.
-
¡Sonríe después de que funcione!
Estamos tratando de desarrollar una aplicación de geoplacement para uno de nuestros clientes, y queremos probarla primero en nuestro propio dominio.
Hemos firmado para la API JavaScript de Google Maps, y tenemos una clave de navegador válida y nuestro dominio, www.grupocamaleon.com, ha sido autorizado para usar esa clave.
Pero no podemos hacer que el ejemplo más sencillo se ejecute sin errores.
Tenemos, en nuestro dominio y con nuestra clave, la siguiente demostración:
(1) http://www.grupocamaleon.com/boceto/aerial-simple.html
Pero no funciona, y la consola Firebug dice:
"Error de API de Google Maps: error de API de Google Maps: RefererNotAllowedMapError (enlace a la documentación de Google en RefererNotAllowedMapError) URL de su sitio para ser autorizado: (1)"
A mi página de credenciales le falta la posibilidad de agregar referencias para aceptar, por lo que las soluciones que implican agregar referencias no son posibles en este momento.
Mi página de credencial:
¿Por qué tenemos ese error? ¿Cómo podemos arreglarlo?
Agrego 2 dominios de sitios web, el conjunto "*" en el subdominio no funciona, pero el subdominio específico "WWW" y el no subdominio se han trabajado para mis sitios web utilizando la misma clave de API de Google Map.
Espero que sea de ayuda.
Compruebe que también tiene habilitado el APIS correcto.
Intenté todo lo anterior, asteriscos, dominios tlds, barras diagonales, barras diagonales inversas y todo, incluso al final solo ingresé una url como última esperanza.
Todo esto no funcionó y finalmente me di cuenta de que Google también requiere que especifiques ahora qué API quieres usar (ver captura de pantalla)
No tenía habilitados los que necesitaba (para mí, era la API de JavaScript de Maps)
Una vez que lo habilité, todo funcionó bien usando:
¡Espero que ayude a alguien! :)
Descubrí que incluso sus
HTTP Referreres
son lo suficientemente válidas, un conjunto incorrecto de
API Restrictions
de
API Restrictions
causa un
Google Maps JavaScript API error: RefererNotAllowedMapError
.
Por ejemplo:
- Estás utilizando la API de Javascript para la clave.
-
Agregue
http://localhost/*
aApplication Restrictions / HTTP Referrences
-
Elija
Maps Embed API
lugar deMaps Javascript API
-
Esto provoca
RefererNotAllowedMapError
Eliminar las restricciones (a Ninguna) funcionó para mí.
Este es otro producto sh1tty de Google con una implementación terrible.
El problema que he encontrado con esto es que si restringe una clave API por dirección IP, no funcionará ... PERO lejos de Google para aclarar este punto ... No fue hasta la resolución de problemas e investigación que encontré:
Las claves de API con una restricción de direcciones IP solo se pueden usar con servicios web destinados al uso desde el lado del servidor (como la API de geocodificación y otras API de servicios web). La mayoría de estos servicios web tienen servicios equivalentes dentro de la API de JavaScript de Maps (por ejemplo, consulte el Servicio de geocodificación). Para utilizar los servicios del lado del cliente de la API de JavaScript de Maps, deberá crear una clave API separada que se pueda asegurar con una restricción de referencias HTTP (consulte Restricción de una clave API).
https://developers.google.com/maps/documentation/javascript/error-messages
FFS Google ... Información bastante importante que sería bueno aclarar en la configuración ...
Experimenté el mismo error:
Este enlace habla sobre cómo configurar restricciones de clave API: https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions
En mi caso, el problema era que estaba usando esta restricción:
Referencias HTTP (sitios web) Acepte solicitudes de estas referencias HTTP (sitios web) (Opcional) Utilice * ''s para comodines. Si deja esto en blanco, se aceptarán solicitudes de cualquier referente. Asegúrese de agregar referencias antes de usar esta clave en producción.
https://*.example.net/*
Esto significa que las URL como https://www.example.net o https://m.example.net o https://www.example.net/San-salvador/ funcionarían. Sin embargo, las URL como https://example.net o https://example.net o https://example.net/San-salvador/ no funcionarían. Simplemente necesitaba agregar un segundo referente:
https://example.net/*
Eso solucionó el problema para mí.
Finalmente conseguí el mío usando este consejo de Google: ( https://support.google.com/webmasters/answer/35179 )
Aquí están nuestras definiciones de dominio y sitio. Estas definiciones son específicas de la verificación de Search Console:
http://example.com/ - A site (because it includes the http:// prefix)
example.com/ - A domain (because it doesn''t include a protocol prefix)
puppies.example.com/ - A subdomain of example.com
http://example.com/petstore/ - A subdirectory of http://example.com site
Hay muchas soluciones supuestas a lo largo de varios años, y algunas ya no funcionan y otras nunca funcionaron, por lo tanto, mi versión actualizada funciona a fines de julio de 2018.
Preparar:
La API de JavaScript de Google Maps tiene que funcionar correctamente con ...
-
múltiples dominios llamando a la API:
example.com
yexample.net
-
subdominios arbitrarios:
user22656.example.com
, etc. -
protocolos HTTP seguros y estándar:
http://www.example.com/
yhttps://example.net/
- estructura de ruta indefinida (es decir, una gran cantidad de rutas URL diferentes)
Solución:
-
En realidad, usando el patrón del marcador de posición:
<https (or) http>://*.example.com/*
. - No omite el protocolo, pero agrega dos entradas por dominio (una por protocolo).
-
Una entrada adicional para subdominios (con un
*.
cabeza del nombre de host). -
Tenía la sensación de que el error
RefererNotAllowedMapError
todavía aparecía usando la configuración adecuada (y que había esperado mucho tiempo). Eliminé la clave de credencial, repetí la solicitud (ahora obteniendoInvalidKeyMapError
), creé nuevas credenciales (usando exactamente la misma configuración) y funcionó desde entonces. - Agregar un mero protocolo y dominio parecía no haber incluido subdominios.
- Para uno de los dominios, la configuración de trabajo se ve así:
(Como texto :)
Accept requests from these HTTP referrers (web sites)
https://*.example.com/*
https://example.com/*
http://*.example.com/*
http://example.com/*
La consola Javascript de Chrome sugirió que declare la dirección completa de la página en mi lista de referencias HTTP, en este caso http://mywebsite.com/map.htm Aunque la dirección exacta es http://www.mywebsite.com/map.htm - Ya tenía estilos de comodines enumerados según lo sugerido por otros, pero esta era la única forma en que funcionaría para mí.
Ninguna de estas soluciones
RefererNotAllowedMapError
para mí hasta que descubrí que
RefererNotAllowedMapError
puede ser causado por no tener una cuenta de facturación vinculada al proyecto.
Así que asegúrese de activar su prueba gratuita o lo que sea.
Probé muchas variaciones de referencia y también esperé 5 minutos hasta que me di cuenta de que el ejemplo que Google completa en el campo de formulario es defectuoso. Ellos enseñan:
*.example.com/*
Sin embargo, eso solo funciona si tienes
subdomain.
o
www.
delante de tu nombre de dominio.
Lo siguiente me funcionó de inmediato (omitiendo el primer período del ejemplo de Google):
*example.com/*
Sé que esta es una vieja pregunta que ya tiene varias respuestas, pero tuve el mismo problema y para mí el problema fue que seguí el ejemplo proporcionado en console.developers.google.com e ingresé mis dominios en el formato
*.domain.tld/*
.
Esto no funcionó en absoluto, e intenté agregar todo tipo de variaciones a esto como
domain.tld
,
domain.tld/*
,
*.domain.tld
etc.
Lo que me resolvió fue agregar el
protocolo
real también;
http://domain.tld/*
es el único que necesito para que funcione en mi sitio.
Supongo que tendré que agregar
https://domain.tld/*
si tuviera que cambiar a HTTPS.
Actualización: Google finalmente ha actualizado el marcador de posición para incluir
http
ahora:
Según la documentación, ''RefererNotAllowedMapError'' significa
La URL actual que carga la API de JavaScript de Google Maps no se ha agregado a la lista de referencias permitidas. Compruebe la configuración de referencia de su clave API en la Consola de desarrolladores de Google.
Tengo la API de Google Maps Embed configurada para mi propio uso personal / laboral y hasta el momento no he especificado ninguna referencia HTTP. No registro errores. Su configuración debe hacer que Google piense que la URL que está visitando no está registrada o no está permitida.
Según los
documentos de Google,
esto sucedió porque la
url
en la que está utilizando la API de Google Maps, no
not registered
en la
list of allowed referrers
EDITAR:
De Google Docs
Todos los subdominios de un dominio específico también están autorizados.
Si http://example.com/ está autorizado, entonces http://www.example.com/ también está autorizado. Lo contrario no es cierto: si http://www.example.com/ está autorizado, http://example.com/ no está necesariamente autorizado
Entonces, configure el dominio
http://testdomain.com
, entonces su
http://www.testdomain.com
comenzará a funcionar.
Solo recuerde que si solo lo cambia, la configuración puede tardar hasta 5 minutos.
También luché para que esto funcionara, pero aquí hay algunos consejos:
-
Las URL establecidas como referencias incluyen
http
, por ejemplo,http://example.com/*
- Se activó la API de JavaScript de Google Maps
- La facturación se configuró en esta cuenta
Una vez que se resolvió todo lo anterior, los mapas se muestran como se esperaba.
Vamos, Google, ustedes son más inteligentes de lo que permite la página de credenciales API. (Lo sé porque tengo dos hijos trabajando allí).
La lista de "referentes" es mucho más exigente de lo que permite. (Por supuesto, debería ser más indulgente). Aquí hay algunas reglas que me llevaron horas descubrir:
- El orden en la lista es importante. Mover su URL hacia arriba en la lista puede hacer que funcione.
- Se requiere el prefijo "http: //".
- Incluso "localhost" lo necesita: " http://localhost/foo/bar.html "
-
Un
trailing
*
como comodín parece funcionar como si fuera una comparación de cadenas. - Incluso con " http://localhost/foo/bar.html ", " http://localhost/foo/bar.html?arg=1 " no funcionará. (¿Ayudará un comodín?)
- Para ambos desarrolladores de productos, tenga (al menos) dos filas: " http://localhost/foo/bar.html " y " http://my.site.com/foo/bar.html "
- No parece necesario un número de puerto (8085? 4000?).
Probablemente hay otras reglas, pero este es un tedioso juego de adivinanzas.
Verifique su decklaration en el sitio. Para cargar la API de JavaScript de Google Maps, use una etiqueta de script como esta
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
async defer></script>
Estoy usando esta declaración en mi sitio de Wordpress en el archivo function.php
wp_enqueue_script("google-maps-v3", "//maps.google.com/maps/api/js?key=YOUR_API_KEY", false, array(), false, true);
He configurado la clave API en este formato, y funciona bien
http://my-domain-name(without www).com/*
esta declaración no funciona
*.my-domain-name.com/*
muestra una captura de pantalla de la página de credenciales de la API, pero debe hacer clic en "Clave de navegador 1" e ir desde allí para agregar referencias.
http://www.example.com/ * me ha funcionado después de días y días de intentarlo.
NO se permiten comodines (asteriscos) en los subdominios.
- INCORRECTO: * .example.com / *
- DERECHA: example.com/*
Olvida lo que Google dice en el marcador de posición, no está permitido.
Para páginas anidadas más profundas
Si tiene un proyecto en una carpeta, por ejemplo, o páginas anidadas
http://yourdomain.com/your-folder/your-page
puedes ingresar esto en
http://yourdomain.com/*/*
La parte importante es
/*/*/*
dependiendo de qué tan lejos deba llegar
Parece que el
*
no coincidirá
/
o entrará en caminos más profundos.
Esto le dará acceso completo a su dominio, a menos que tenga un anidamiento más profundo que eso ...