Keyless access to Google Maps Platform is deprecated

20,254

Solution 1

Since June 11th 2018, Google began enforcing the use of API keys. Keyless usage will result in a degraded experience, or an error like OVER_DAILY_LIMIT and OVER_QUERY_LIMIT.

Source: Important Updates from Google Maps Platform

Putting the API Key in the URL like this is a good solution:

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

But be sure that your key restrictions are well configured. If you have restricted the Key to your app, it may not work because the request made via HTTP are related with your IP address. Meaning that even if you have correctly configured your Android App and manifest, it may result with an ACCESS_DENIED. This can be verified by changing your restriction.

Example of no restriction for testing purpose: enter image description here

For more details about API key and restrictions: Quick guide to getting a key

Solution 2

For the ones that use jd-alexander's direction library, don't forget to add the api key to routing builder:

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();

Solution 3

If anyone using jd-alexander's Google Directions Library use the Google API key as below code.

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

If you have any doubts don't hesitate to leave a comment.

Share:
20,254
grantespo
Author by

grantespo

A professional native mobile developer who likes to tinker with a little bit of every other tech stack

Updated on October 27, 2020

Comments

  • grantespo
    grantespo over 3 years

    Sometimes when I try to use the Google MAPS API KEY to get a URL to draw a 'polyline', i get an error in my logs:

    "error_message":"Keyless access to Google Maps Platform is deprecated. Please use an API key with all your API calls to avoid service interruption. For further details please refer to http://g.co/dev/maps-no-account","routes":[],"status":"OVER_QUERY_LIMIT"

    I have this in my manifest:

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

    Also, this API KEY 'enabled' in my API CONSOLE and it is restricted to Google Maps Android SDK and Directions API. I also have billing enabled for my Google API CONSOLE but I still get this error sometimes.

  • Amranur Rahman
    Amranur Rahman over 5 years
    this is old..Not Working Now