不建议使用无密钥访问Google Maps Platform

时间:2018-09-16 09:57:12

标签: android google-maps google-api

有时候,当我尝试使用Google MAPS API KEY来获取绘制“折线”的网址时,我的日志中出现了错误:

  

“ error_message”:“不建议使用无密钥访问Google Maps Platform。请在所有API调用中使用API​​密钥,以避免服务中断。有关更多详细信息,请参阅http://g.co/dev/maps-没有帐户”,“路线”:[],“状态”:“ OVER_QUERY_LIMIT”

我的清单中有这个

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

此外,此API KEY已在我的API CONSOLE中“启用”,并且仅限于Google Maps Android SDK和Directions API。我也为我的Google API控制台启用了结算功能,但有时仍然会收到此错误。

4 个答案:

答案 0 :(得分:26)

自2018年6月11日起,Google开始强制使用API​​密钥。无键使用将导致体验下降,或出现OVER_DAILY_LIMIT和OVER_QUERY_LIMIT之类的错误。

来源:Important Updates from Google Maps Platform

将API密钥放在URL中是一个很好的解决方案:

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

但是请确保您的密钥限制配置正确。如果您将密钥限制为您的应用程序,则可能无法使用,因为通过HTTP发出的请求与您的IP地址相关。这意味着,即使您已经正确配置了Android应用和清单,也可能会产生ACCESS_DENIED。可以通过更改限制来验证这一点。

无限制测试示例: enter image description here

有关API密钥和限制的更多详细信息:Quick guide to getting a key

答案 1 :(得分:4)

对于使用jd-alexander's direction library的用户,请不要忘记将api密钥添加到路由构建器:

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

答案 2 :(得分:1)

如果使用jd-alexander's Google Directions Library的任何人都使用Google API密钥,如下所示。

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

如果您有任何疑问,请随时发表评论。

答案 3 :(得分:-1)

我刚刚在网址中添加了 key 参数。之后,我可以从Google Map API获得响应。

示例:https://maps.googleapis.com/maps/api/geocode/json?address=COMPLETE+ADDRESS&sensor=true&key=YOUR_GOOGLE_MAP_API_KEY