问题
I'm trying to utilize Google Places API in Android app. I'm using React Native and the following package: https://github.com/FaridSafi/react-native-google-places-autocomplete
- API key in Google console created
- Restriction set to Android app (SHA1 fingerprint + package name)
- SHA1 fingerprint and package name values checked with:
- aapt dump badging app-release.apk
- unzip -p app-release.apk META-INF/CERT.RSA | keytool -printcert
- API key don't have any API usage restriction (can be used with any service)
- Places API enabled
- Maps JavaScript API enabled
- Maps SDK for Android enabled
A) When Android app restriction is set (point 2). I'm getting error:
"google places autocomplete: This IP, site or mobile application is not authorized to use this API key. Request received from IP address xxx.xxx.xxx.xxx, with referrer: undefined"
B) When Android app restriction removed (restriction set to None) everything works fine.
Any ideas?
回答1:
The Google Places API is designed to be used in server-side applications. There are two other Places SDK for Android / IOS, which is designed to be used with mobile applications. The API restrictions are designed to support only these usage. So using Places API in React native, you are kind of left in a field naked. A proper way to do is to develop a wrapper module to use proper SDK in your react native project. You may want to check https://github.com/tolu360/react-native-google-places.
回答2:
To use this React native project, your Google Place API should be unrestricted. As this is not a Android SDK as well Website with Javascript, so only option left is to unrestirct it.
Better way would be to restrict the API Usage for Places API
to avoid misuse.
Please see below screenshot to check How to restrict Google Places API for React Native Autocomplete?
来源:https://stackoverflow.com/questions/55917439/google-places-api-reactnative