Google Places API for Android无法检索地点详细信息[“error_message”:“此IP,网站或移动应用程序未获得授权]

时间:2016-10-27 02:44:08

标签: android api google-maps

我正在开发一个Android应用程序,它将显示当前位置和附近的地方详细信息。

我创建了一个项目,Google从console.developers.google.com/apis

中放置了适用于Android的API密钥

除了地方细节外,一切正常。我收到了这个错误。我一直在阅读文章,来自stackoverflow的线程4个小时但无法解决这个错误。我添加了错误消息截图 Error here

我为Android和Google提供了Google地方用于网络服务API的地方。仍然没有运气。这是Place详细信息检索代码的片段。

private void ShowNearbyPlaces(List<HashMap<String, String>> nearbyPlacesList) {
    for (int i = 0; i < nearbyPlacesList.size(); i++) {
        //Log.d("onPostExecute","Entered into showing locations");
        MarkerOptions markerOptions = new MarkerOptions();
        HashMap<String, String> googlePlace = nearbyPlacesList.get(i);
        double lat = Double.parseDouble(googlePlace.get("lat"));
        //Log.d("onPostExecute",lat+"");
        double lng = Double.parseDouble(googlePlace.get("lng"));
        //Log.d("onPostExecute",lng+"");
        String placeName = googlePlace.get("place_name");
        Log.d("onPostExecute",placeName);
        String vicinity = googlePlace.get("vicinity");
        Log.d("onPostExecute",vicinity);

        String reference = googlePlace.get("reference");
        Log.d("onPostExecute",reference);

        placeDetailsUrl = "https://maps.googleapis.com/maps/api/place/details/json?reference=";
        placeDetailsUrl+=reference;

        StringBuilder sb = new StringBuilder(placeDetailsUrl);
        sb.append("&sensor=false");
        sb.append("&key=API_KEY");
        // Creating a new non-ui thread task to download Google place details
        PlacesTask placesTask = new PlacesTask();

        // Invokes the "doInBackground()" method of the class PlaceTask
        placesTask.execute(sb.toString());
        Log.d("onPostExecute",sb.toString());

        LatLng latLng = new LatLng(lat, lng);
        markerOptions.position(latLng);
        markerOptions.title(placeName + " : " + vicinity);
        mMap.addMarker(markerOptions);
        markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
        //move map camera
        mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
        mMap.animateCamera(CameraUpdateFactory.zoomTo(11));
    }
}

以下是使用键和传感器搜索地点详细信息的示例链接:https://maps.googleapis.com/maps/api/place/details/json?reference=CmRRAAAAWJCg5jPBI1kI4dISUrbklGFJFDaFXw_LdwNrxwZ26DxKoaGtS20rOK8bVtgWffurXfF3jAp4zU-2ULkEhcLAkOyCEy0I5etHB10Kp58j3juQz0yBT94ZRW1I1JefyhxrEhBMOCy9wn48medqeIpbmxP5GhQWG3zDLPPrnEU6c1N476Vd0rQpqw&sensor=false&key=API_KEY

我注意到大多数文章都建议使用服务器密钥或浏览器密钥。但我没有在api控制台上看到任何服务器或浏览器密钥选项。

我希望有人能够帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

不公开您的api密钥,您应该稍后将其删除。

我认为您没有正确启用Google地方服务。

转到https://developers.google.com/places/web-service/get-api-key,点击获取密钥并选择您的项目。你应该等几分钟再试一次新的api密钥。

查看https://developers.google.com/places/android-api/place-details以获取地点详细信息,而无需创建自己的asynctask