有时,当我尝试使用Google MAPS API KEY获取用于绘制“折线”的网址时,我的日志中出现错误:
“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”
我的清单中有这个:
<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 CONSOLE启用了结算功能,但有时我仍会收到此错误.
解决方法
自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.这可以通过更改您的限制来验证.
有关API密钥和限制的更多详细信息:Quick guide to getting a key