Esta IP, sitio o aplicación móvil no está autorizada para usar esta clave API

100

Estoy usando https://maps.googleapis.com/maps/api/geocode/json ? enlace con la clave del servidor y la IP del usuario para encontrar la latitud y longitud de cualquier dirección, cuando lo intento, encuentro el error como

Tengo una clave de acceso al servidor de Google y he puesto la dirección IP de mi servidor en su lista blanca.

La URL a la que estoy intentando acceder a través de PHP CURL es:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true&key=XXXXXXXXXXXX

El resultado que obtengo:

Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED)

¿Hay algo que deba configurar? La API de codificación geográfica también está activada.

usuario3336944
fuente
Tienes que obtener una clave autorizada de Google y ponerla en la API
Dimag Kharab
Ya hay una clave API disponible
sanket
Verifique la respuesta de Mike, funcionó para mí
Sheraz Ahmad Khilji
¡Acepta la respuesta de mike20132013! ¡Funciona!
aveschini

Respuestas:

150

Tuve el mismo problema y encontré esto.

En la URL, requiere la clave del servidor al final y no la clave api para la aplicación.

Básicamente, solo agrega la clave del servidor al final de la URL de esta manera:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&sensor=true&key=SERVERKEY

Ahora, para obtener la clave del servidor, simplemente siga estos pasos:

1) Vaya a la Consola de desarrollador https://code.google.com/apis/console/

2) En Credenciales, en Acceso a API pública, Crear nueva clave

3) Seleccione la clave del servidor de la opción.

4) Ingrese su dirección IP en el campo y si tiene más direcciones IP, puede agregar en cada línea. NOTA: Ingrese la dirección IP solo cuando desee usarla para su propósito de prueba. De lo contrario, deje en blanco la sección Dirección IP.

5) Una vez que haya terminado, haga clic en crear y se generará su nueva clave de servidor y luego puede agregar esa clave de servidor a su URL.

Lo último es que, en lugar de poner sensor = true en el medio de la URL, puedes agregarlo al final de esta manera:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&key=SERVERKEY&sensor=true

Esto definitivamente resolverá el problema y solo recuerde usar la clave del servidor para Places API.

EDITAR

Creo que la URL web ha cambiado en los últimos años. Puede acceder a la consola de desarrolladores desde aquí ahora: https://console.developers.google.com/apis/dashboard

  • Navegue a la consola de desarrolladores: https://console.developers.google.com/ o use el enlace de detalles para navegar directamente al panel de API.
  • En la consola de desarrollo, busque Etiqueta en el panel de navegación izquierdo
  • Seleccionar proyecto
  • Elija Credenciales en el panel de navegación izquierdo
  • Puede crear el tipo de credenciales desde la barra de navegación superior según sea necesario.

Espero que esta respuesta te ayude a ti y a otros espectadores. Buena suerte .. :)

mike20132013
fuente
8
Muy importante 4) Ingrese su dirección IP en el campo y si tiene más direcciones IP, puede simplemente agregar en cada línea. NOTA: Ingrese la dirección IP solo cuando desee usarla para su propósito de prueba. De lo contrario, deje en blanco la sección Dirección IP.
Sheraz Ahmad Khilji
6
Eso es correcto ... solo especifique la dirección / direcciones IP para fines de prueba. De lo contrario, déjelo en blanco. Porque está restringiendo la aplicación o la clave api para que funcione solo en dispositivos / aplicaciones específicos.
mike20132013
1
@johnshumon Sí, supongo ... no he actualizado la respuesta durante años. Podría haber algunos cambios nuevos en la API.
mike20132013
1
Es posible que también desee asegurarse de que el servicio web de la API de Google Places también sea una API habilitada
Justin Wilson
1
Luché con esto durante horas antes de descubrir que el nuevo "proyecto" ahora debe estar vinculado a una cuenta de facturación en la nube de Google para que la API de Google deje de dar estos diversos errores genéricos. El umbral se puede establecer en $ 0 para que nunca se le cobre si el uso excede la cuota permitida.
Sparky
15
  1. Elija clave
  2. Pestaña de restricción de API
  3. Elija la clave API
  4. Salvar
  5. Elija Restricción de la aplicación -> Ninguna
  6. Salvar

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Tuan Nguyen
fuente
Tenía pocos servicios enumerados en las restricciones de API pero no en la codificación geográfica
Muhammad Umer
trabajado como un encanto. Gracias estaba intentando geocodificar. Establecí las restricciones de la aplicación en ninguna como señaló y funcionó.
Ravi
4
Restricciones: ninguna es bastante peligrosa.
Deniss M.
8
¡Desactivar la seguridad no es una solución!
Bartholomej
¡NO DEJE LA CLAVE API SIN RESTRICCIONES! El nuevo "proyecto" ahora debe estar vinculado a una cuenta de facturación para que la API de Google deje de dar estos diversos errores genéricos. El umbral se puede establecer en $ 0 para que nunca se le cobre si el uso excede la cuota permitida.
Sparky
14

Además de la clave de API que se le asigna, Google también verifica el origen de la solicitud entrante mirando REFERRERla dirección IP o la dirección IP. Para ejecutar un ejemplo en curl, cree uno nuevo Server Keyen la consola de API de Google . Al crearlo, debe proporcionar la dirección IP del servidor. En este caso, será su dirección IP local . Una vez que haya creado Server Keyy incluido en la lista blanca su dirección IP, debería poder usar la nueva clave API en curl.

Supongo que probablemente creó su clave API como una Browser Keyque no requiere que incluya en la lista blanca su dirección IP, sino que utiliza la REFERRERetiqueta de encabezado HTTP para la validación. curl no envía esta etiqueta de forma predeterminada, por lo que Google no pudo validar su solicitud.

Michael Venable
fuente
1+ Necesitará crear una clave de API de servidor para usar el servicio Geocode de Google. También es necesario habilitar el servicio de geocodificación de mapas de Google desde la consola API de Google ... ¡Gracias!
Sumit Munot
Luché con esto durante horas antes de descubrir que el nuevo "proyecto" ahora debe estar vinculado a una cuenta de facturación en la nube de Google para que la API de Google deje de dar estos diversos errores genéricos. El umbral se puede establecer en $ 0 para que nunca se le cobre si el uso excede la cuota permitida.
Sparky
6

Actualmente, la API de Google Places no admite claves de Android o iOS generadas desde la consola de API de Google. Actualmente, solo se admiten las claves de servidor y navegador.

Islam nazrul
fuente
1
Interesante ... entonces, ¿cómo se genera una clave para usar en aplicaciones de Android o iOS?
Graham Perks
Las teclas de su navegador funcionarán en Android e iOS. Obtenga las claves del navegador en la consola de API de Google
Nazrul Islam
No lo hacen sin un esfuerzo extra. Me di cuenta de esto después de un día frustrante ayer; hay un paso adicional para las aplicaciones: stackoverflow.com/a/58136437/434004
Graham Perks
3

Está intentando usar una CLAVE API que restringió de una manera que no permitirá esta acción.

Según Google:

Note: If you need to call web, web service, and/or mobile APIs from the same (client-side) app, create and restrict multiple keys.

Entonces, lo correcto es crear otra CLAVE API y elegir las restricciones correctas para este asunto. En su caso, elija "Direcciones IP" (en "Restricciones de la aplicación") y use "AGREGAR UN ARTÍCULO" para agregar la IP de su servidor. Tenga en cuenta que dejar una lista en blanco no funcionará y hará que Google cambie sus restricciones a "Ninguna".

Además, no olvide agregar las API relevantes en "Restricciones de API" (en su caso, "API de codificación geográfica").

Una última cosa: Google está bloqueando el uso de esta API hasta que vincule su aplicación a la cuenta de facturación de Google Cloud. Entonces, si aún no lo hizo, una vez que obtenga una respuesta con éxito, le dirá que debe hacerlo primero (tiene un paquete de inicio gratuito).

brkeyal
fuente
2

Usted crea una clave sin referenciador, no ingrese la dirección de referencia

DeadlyDroid
fuente
¿Podría explicarlo por favor?
Sagar Devanga
2
Mientras crea la clave que tiene como lugar para agregar la dirección de referencia, verifique que haya agregado algo allí. si se agrega
Borrarlo
2

La API de Google Place requiere que se incluya el encabezado HTTP de referencia al realizar la llamada a la API.

Incluya el encabezado HTTP "Referer: yourdomain.com" y esto debería solucionar los problemas de respuesta.

Ramesh
fuente
1
Si bien esto puede responder a la pregunta, siempre es una buena idea incluir un texto en su respuesta para explicar lo que está haciendo. Lea cómo escribir una buena respuesta . Además, debe incluir algún código.
Jørgen R
¿Podría proporcionar un fragmento
Sagar Devanga
Esto es lo que hice y funcionó perfectamente: var options = {url: url, headers: {Referer: ' xxx.herokuapp.com '}}; request.get (opciones, función (...
Florida G.
1

Además, la API correspondiente debe estar habilitada para el proyecto dado

https://console.developers.google.com/apis/library?project=projectnamehere

dav
fuente
1

Para la última versión de la API, lo contrario parece ser cierto para mí.

Al llamar a la url https://maps.googleapis.com/maps/api/geocode/json?address=<address>&key=<key>recibí el siguiente error

Debe utilizar una clave de API para autenticar cada solicitud a las API de Google Maps Platform. Para obtener información adicional, consulte http://g.co/dev/maps-no-account

Una vez que cambié el orden https://maps.googleapis.com/maps/api/geocode/json?key=<key>&address=<address>, funcionó bien.

Tenga en cuenta que el mensaje de error recibido anteriormente fue el mensaje que recibí al ir directamente a la URL en el navegador. Cuando llamé a la API desde un programa de software, recibí una respuesta HTML con básicamente el siguiente mensaje:

Lo sentimos ... pero su computadora o red puede estar enviando consultas automáticas. Para proteger a nuestros usuarios, no podemos procesar su solicitud en este momento.

kilkfoe
fuente
Luché con esto durante horas antes de descubrir que el nuevo "proyecto" ahora debe estar vinculado a una cuenta de facturación en la nube de Google para que la API de Google deje de dar estos diversos errores genéricos. El umbral se puede establecer en $ 0 para que nunca se le cobre si el uso excede la cuota permitida.
Sparky
0

Autenticación, cuotas, precios y políticas Autenticación Para utilizar la API de indicaciones, primero debe habilitar la API y obtener las credenciales de autenticación adecuadas. Para obtener más información, consulte Introducción a Google Maps Platform.

Cuotas y precios Revise la página de uso y facturación para obtener detalles sobre las cuotas y los precios establecidos para la API de indicaciones.

Políticas El uso de la API de rutas debe estar de acuerdo con las políticas de la API.

más información: visite: --- https://developers.google.com/maps/documentation/directions/start?hl=en_US

Sudipta Ghosh
fuente
-2
  url = https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving&key=AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY

agregar solo en AppDelegate como

            GMSServices.provideAPIKey("AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY")

y elimine la clave en esta URL.

ahora la URL es

https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving
Abubakar Bizimana
fuente
-3

Deshabilite la api de dirección y la api de codificación geográfica y vuelva a habilitarla.

funciona solo durante 5-10 segundos y luego se desactiva automáticamente.

significa que tiene sólo 5-10 segundos para probar su tarea.

Ѕћӗһ Ӡӓԃѧ
fuente