J'essaie de créer un champ de saisie semi-automatique qui devrait extraire les villes en tant que types d'utilisateurs, à l'aide de l'API Google Places, comme décrit dans ce didacticiel: https://developers.google.com/places/training/autocomplete-Android
Vous avez probablement déjà trouvé cette question à plusieurs reprises auparavant, mais aucune des réponses ne m'a aidé. Voici les choses que vous devriez savoir:
Ne répondez pas en disant que vous avez remplacé la clé d'API par la vôtre et que cela a fonctionné - la clé d'API utilisée doit être spécifique à Android et ne fonctionnera pas à partir d'un navigateur.
J'ai donc créé la clé d'API Android à l'aide de l'empreinte SHA1 obtenue à partir du magasin de clés avec laquelle j'ai signé l'application. J'ai activé les API Maps et Places depuis la console. Le quota n'est pas dépassé.
Tous ceux-là et ça me donne toujours REQUEST_DENIED
Ce que je n'ai pas mentionné, c'est que j'ai activé O2Auth - cela change-t-il quelque chose? Ne devrait-il pas être aussi simple que de mettre la clé API dans l'application?
Merci!
L'API Google Adresses ne prend actuellement pas en charge les clés Android ou iOS générées à partir de la console API Google. Seules les clés de serveur et de navigateur sont actuellement prises en charge.
Si vous souhaitez demander cette assistance, veuillez créer un fichier Places API - Feature Request .
Bien que cette question ait été résolue, je pense que la communauté pourrait faire mieux.
J'étais en train de m'arracher les cheveux à ce sujet, cela n'avait aucun sens pour moi .. Je réalisais une application iOS/Android, alors j'ai créé une clé iOS/Android ... Wrong.
Avec l'API Google Adresses, votre identifiant d'ensemble n'est même pas pris en compte.
Ce que vous voulez vraiment faire est ceci: (J'utilise la nouvelle interface utilisateur)
1. Connectez-vous à https://cloud.google.com/console#/project
Sélectionnez votre nom de projet, puis allez dans API & Auth> APIs
Assurez-vous que l'API Places est activée. C’est la seule chose à activer pour que Places-API fonctionne.
2. Allez dans les informations d'identification
Cliquez sur CREATE NEW KEY sous Public API Access .
3. Sélectionnez BROWSER KEY
4. Cliquez sur Créer, rien d'autre
Laissez la zone HTTP Refer vide.
5. Utilisez la clé générée ici
Cette clé permettra à TOUT utilisateur de n’importe quel appareil d’accéder à l’API via votre identifiant de développeur. Vous pouvez l’essayer ici: (Assurez-vous de remplacer YOUR_KEY_HERE par votre clé générée)
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Food%20Sh&sensor=false&radius=500&location=0,0&key=YOUR_KEY_HERE
6. Enjoy
Vous pouvez maintenant utiliser cette URL ci-dessus sur votre appareil Android/iOS.
https://developers.google.com/places/training/autocomplete-Android
Stocker votre clé API
Bien que le code ci-dessus montre comment communiquer directement Entre une application Android et le service Places Autocomplete, vous ne devriez pas Stocker votre clé API Places avec votre application.
Vous devez donc créer une application Web qui stocke votre clé d’API Et fournit des services de proxy aux services de l’API Place. Afin de sécuriser la communication Entre votre application Android et le service Web proxy, vous devez exiger une authentification Auprès de votre service Web proxy. Votre application Android peut Stocker en toute sécurité les informations d'identification de l'utilisateur et les transmettre à votre service Web, ou L'utilisateur peut se connecter à votre application Web via une vue Web Android.
Pour cette dernière approche, votre application Web doit créer et renvoyer un jeton d'authentification d'utilisateur À votre application Android. Votre application Android devrait ensuite Transmettre ce jeton à votre service Web proxy.
Dans la console de développement Google, vous devriez pouvoir trouver à la fois "Places API" et "Places API pour Android".
Assurez-vous d'utiliser "Places API pour Android"
Pour une raison quelconque, "Places API pour Android" est masqué dans la liste des API, mais est accessible à l'aide de la fonction de recherche.
J'ai eu le même problème, je le répare en laissant
Accepter les demandes de ces référents HTTP (sites Web) (facultatif)
dans la clé du navigateur vide
Je suis toujours nouveau et je ne peux donc pas commenter, mais pour éclaircir la réponse de Moe, j'ai résolu certains problèmes similaires liés à l'API Google Maps concernant les requêtes d'URL (pour les instructions, à l'aide de Volley) en procédant comme suit:
meta-data
dans la balise application
dans AndroidManifest.xml
, avec Android:name="com.google.Android.maps.v2.API_KEY"
et Android:value
en tant que clé. Ceci est utilisé pour une interaction directe avec l'API Google Maps (requêtes moins URL).Je ne sais pas si cela s'applique également aux requêtes d'URL pour l'API Places, si vous avez uniquement besoin de la clé d'API de serveur ou s'il existe une meilleure solution, mais cela a fonctionné pour moi.
J'imagine que cela fonctionne uniquement avec la première clé - celle qui n'est pas limitée à Android.