Question

I'm using the Google Places API which requires that you give a list of IPs which are allowed to use the service. The API works great on my local machine but it give a

This IP, site or mobile application is not authorized to use this API key

when I use it from my production server. I've added the required IPs. Any other ideas what might be the issue or how to debug it?

Was it helpful?

Solution

I had the same issue and I found this.

On the url, it requires the server key in the end and not the api key for the app.

So Basically, you just add the server key in the end of the URL like this:

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

Now, to obtain the server key, just follow these steps:

1) Go to Developer Console https://code.google.com/apis/console/

2) In the Credentials, under Public API Access , Create New key

3) Select the server key from the option.

4) Enter your IP Address on the field and if you have more ip addresses, you can just add on every single line.NOTE: Enter the IP Address only when you want to use it for your testing purpose. Else leave the IP Address section blank.

5) Once you are done, click create and your new Server Key will be generated and you can then add that server key to your URL.

Last thing is that, instead of putting the sensor=true in the middle of the URL, you can add it in the end like this:

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

This will definitely solve the issue and just remember to use the server key for places api.

EDIT

I believe the web URL has changed in the past years. You can access developers console from here now - https://console.developers.google.com/apis/dashboard

  • Navigate to developers console - https://console.developers.google.com/ or use the link from details to navigate directly to API dashboard.
  • Under developer console, find Label from the left navigation panel
  • Select project
  • Choose Credentials from the left Navigation panel
  • You could create credentials type from the Top nav bar as required.

Hope this answer will help you and other viewers. Good Luck .. :)

OTHER TIPS

You need to enable the following places api

  • Google Places API Web Service

As you are making a http request.

As a best practice [1] you need to use a separate API key for each application/platform (iOS, Android, server-side, client-side) and set the corresponding application restriction (iOS apps, Android apps, HTTP referrers, IP addresses).

In your case, you need an API key for Android, restricted to your SHA-1 signing-certificate fingerprint. And another API key for the web services requests, restricted to IP addresses.

When using Android devices, setting IP addresses may cause some issues as those devices use dynamic IP addresses that keep changing [2]. To overcome this issue, you will need to set up a proxy server [3] to get a static public IP address that you can use to set IP restrictions.

Let me know if you have any questions. Best Regards, Maria The Google Maps Platform Team

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top