places google form example address android google-places-api

android - form - google places api example



Solicitud de API de Google Places denegada para autocompletar de Android, incluso con la clave de API correcta (6)

Estoy tratando de hacer un campo Autocompletar que debería buscar ciudades según el tipo de usuario, utilizando la API de Google Places como se describe en este tutorial: https://developers.google.com/places/training/autocomplete-android

Probablemente haya encontrado esta pregunta muchas veces antes que yo, pero ninguna de las respuestas me ayudó. Aquí están las cosas que debes saber:

La URL es https://maps.googleapis.com/maps/api/place/autocomplete/json?sensor=false&key=myKey&components=country:ro&input=whatTheUserTypes

No responda diciendo que reemplazó la clave de API con la suya y funcionó: la clave de API que va allí debe ser específica de Android y no funcionará desde un navegador.

Así que hice la clave de la API de Android utilizando la huella dactilar SHA1 obtenida del almacén de claves con el que firmé la aplicación. Encendí las API de Maps y Places desde la consola. La cuota no se supera.

Todos esos y todavía me da REQUEST_DENIED

Lo que no mencioné es que he activado O2Auth, ¿eso cambia algo? ¿No debería ser tan simple como poner la clave API en la aplicación?

¡Gracias!


Aunque esto ha sido respondido, creo que la comunidad podría hacerlo mejor.

Me estaba arrancando el pelo al respecto, simplemente no tenía sentido para mí ... Estaba creando una aplicación iOS / Android, así que hice una clave iOS / Android ... Incorrecto.

Con la API de Google Places, su identificador de paquete ni siquiera se considera.

Lo que realmente quieres hacer es esto: (Estoy usando la nueva interfaz de usuario)

1. Inicie sesión en https://cloud.google.com/console#/project

Seleccione el nombre de su proyecto, luego ingrese en API''s y Auth> APIs

Asegúrate de tener la API de Places activada. Esto es lo único que debe estar activado para que la API de Places funcione.

2. Entrar en Credenciales

Haga clic en CREAR NUEVA CLAVE en Acceso público a la API

3. Seleccione la tecla Explorador

4. Haga clic en Crear, Nada más.

Deje el cuadro de referencia HTTP vacío.

5. Usa la llave generada aquí

Esta clave permitirá a CUALQUIER usuario acceder desde cualquier dispositivo a la API a través de su inicio de sesión de Desarrollador. Puedes probarlo aquí: (Asegúrate de reemplazar YOUR_KEY_HERE con tu clave generada)

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Food%20Sh&sensor=false&radius=500&location=0,0&key=YOUR_KEY_HERE

6. disfrutar

Ahora puedes usar esa URL en tu dispositivo Android / iOS.


En la consola de desarrollo de Google, deberías poder encontrar tanto "API de Lugares" como "API de Lugares para Android"

Asegúrate de usar "Places API para Android"

Por alguna razón, "Places API para Android" está oculto en la lista de API, pero se puede acceder mediante la búsqueda.


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

Si desea solicitar este soporte, presente una API de Lugares - Solicitud de funciones .


Todavía soy nuevo, así que no puedo hacer comentarios, pero para aclarar la respuesta de Moe, resolví algunos problemas similares de la API de Google Maps con respecto a las consultas de URL (para direcciones, usando Volley) con los siguientes pasos:

  1. Obtener la clave de la API de Android (incluida la API de Google Maps Directions en mi caso).
  2. Obtenga la clave API del "servidor" (que parece haber sido creada mediante el uso de una restricción de clave de "referencias HTTP" en la actualidad; en realidad, solo se usa para emitir consultas de URL a través de HTTP).
  3. Almacene la clave API de Android como etiqueta de meta-data etiqueta de la application en AndroidManifest.xml con android:name="com.google.android.maps.v2.API_KEY" y android:value como su clave. Esto se utiliza para la interacción directa con la API de Google Maps (menos las consultas de URL).
  4. Utilice la clave API del servidor siempre que emita consultas de URL.

No estoy seguro de si esto también se aplica a las consultas de URL para la API de Places, si solo necesita la clave de la API del servidor, o si hay una solución mejor, pero esto funcionó para mí.

Me imagino que funciona solo con la primera tecla, la que no está restringida a Android.


Tuve el mismo problema, lo soluciono dejando

Aceptar solicitudes de estos referentes HTTP (sitios web) (Opcional)

en la tecla del navegador vacía


https://developers.google.com/places/training/autocomplete-android

Almacenando tu clave API

Aunque el código anterior muestra cómo comunicarse directamente entre una aplicación de Android y el servicio de autocompletado de Places, no debe almacenar su clave API de Places con su aplicación.

Por lo tanto, debe crear una aplicación web que almacene su clave API y distribuya los servicios API de Places. Para asegurar la comunicación entre su aplicación de Android y el servicio web proxy, debe solicitar la autenticación del usuario a su servicio web proxy. Su aplicación de Android puede almacenar de forma segura las credenciales de los usuarios y pasarlas a su servicio web, o el usuario puede iniciar sesión en su aplicación web a través de una vista web de Android.

Para este último enfoque, su aplicación web debe crear y devolver un token de autenticación de usuario a su aplicación de Android, y su aplicación de Android posteriormente debe pasar este token a su servicio web proxy.