web-dev-qa-db-fra.com

L'accès sans clé à la plateforme Google Maps est obsolète

Parfois, lorsque j'essaie d'utiliser la clé d'API Google MAPS) pour obtenir une URL permettant de tracer une "polyligne", un message d'erreur s'affiche dans mes journaux:

"error_message": "L'accès sans clé à la plateforme Google Maps est obsolète. Veuillez utiliser une clé d'API avec tous vos appels d'API pour éviter toute interruption du service. Pour plus d'informations, consultez le site http://g.co/dev/maps-no-account. "," routes ": []," status ":" OVER_QUERY_LIMIT "

J'ai ceci dans mon manifeste:

<meta-data
        Android:name="com.google.Android.geo.API_KEY"
        Android:value="MY_GOOGLE_MAPS_API_KEY" />

En outre, cette clé API 'activée' dans ma console API et elle est limitée à Google Maps Android SDK et API de routage. La facturation est également activée pour ma console Google API mais cette erreur persiste. quelquefois.

12
grantespo

Depuis le 11 juin 2018, Google a commencé à imposer l'utilisation de clés API. L'utilisation sans clé entraînera une expérience dégradée ou une erreur comme OVER_DAILY_LIMIT et OVER_QUERY_LIMIT.

Source: Mises à jour importantes de la plateforme Google Maps

Mettre la clé API dans l'URL comme ceci est une bonne solution:

String url = "https://maps.googleapis.com/maps/api/directions/"+output+"?"+parameters + "&key=" + MY_API_KEY

Mais assurez-vous que vos restrictions de clé sont bien configurées. Si vous avez restreint la clé à votre application, il est possible que cela ne fonctionne pas car les demandes effectuées via HTTP sont liées à votre adresse IP. Cela signifie que même si vous avez correctement configuré votre Android application et votre manifeste, il peut en résulter un ACCESS_DENIED. Cela peut être vérifié en modifiant votre restriction.

Exemple de non-restriction à des fins de test: enter image description here

Pour plus de détails sur les clés d’API et les restrictions: Guide rapide pour obtenir une clé

26
probitaille

Pour ceux qui utilisent bibliothèque de direction de jd-alexander , n'oubliez pas d'ajouter la clé api au constructeur de routage:

Routing routing = new Routing.Builder()
                .travelMode(/* Travel Mode */)
                .withListener(/* Listener that delivers routing results.*/)
                .waypoints(/*waypoints*/)
                .key(/*api key for quota management*/)
                .build();
    routing.execute();
4
ninbit

Si quelqu'un utilise bibliothèque Google Directions de jd-alexander , utilisez la clé Google API comme ci-dessous.

Routing routing = new Routing.Builder()
                .key(YOUR_KEY)
                .travelMode(AbstractRouting.TravelMode.DRIVING)
                .withListener(this)
                .alternativeRoutes(false)
                .waypoints(SourceLatLng, DestinationLatLng)
                .build();
        routing.execute();

Si vous avez des doutes n'hésitez pas à laisser un commentaire.

1
AG Mohammed