我正在尝试使用地理编码API获取地址的纬度和经度。这是我的代码:
JSONObject jsonObject = new JSONObject(response.body().toString());
Toast.makeText(TrackingOrder.this, jsonObject + " ", Toast.LENGTH_SHORT).show();
String lat = ((JSONArray) jsonObject.get("results"))
.getJSONObject(0)
.getJSONObject("geometry")
.getJSONObject("location")
.get("lat").toString();
String lng = ((JSONArray) jsonObject.get("results"))
.getJSONObject(0)
.getJSONObject("geometry")
.getJSONObject("location")
.get("lng").toString();
问题是我收到了"访问被拒绝";响应
"error_message" : "You must use an API key to authenticate each request to Google Maps Platform APIs. For additional information, please refer to http://g.co/dev/maps-no-account",
"results" : [],
"status" : "REQUEST_DENIED"
}
我生成一个API密钥,限制它,链接它与我的android应用程序(名称,SHA),并启用地理编码API我尝试在浏览器上调用此请求相同的问题(相同的输出):
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY
我有同样的问题通过应用程序调用地理代码。所以我想确保同样的事情通过邮差来重复。结果证实,我们需要确保步骤遵循谷歌API强制限制作为基本。
还给出了使用当前密钥的额外安全性。如果你不想使用额外的当前秘密,你可以禁用它或删除它。
错误报道案例1您必须使用API密钥对Google Maps Platform API的每个请求进行身份验证。如需更多资料,请浏览http://g.co/dev/maps-no-account"results" [],"status"REQUEST_DENIED">
案例2{error_message": "具有引用限制的API密钥不能用于此API。","results" [],"status"REQUEST_DENIED"}
删除去——>https://console.cloud.google.com/google/maps-apis
应用程序限制应用程序限制控制哪些网站、IP地址或应用程序可以使用您的API密钥。每个键可以设置一个应用程序限制。1)没有2)HTTP引用者(网站)——>//我为我的案例选择了这个。3)IP地址(web服务器、cron作业等)4) Android应用程序5) iOS应用
网站限制限制对指定网站的密钥使用请求。例如:给https://:port/或https://
如果留空,您的API密钥将接受来自任何网站的请求。
我希望这对你有帮助。问候,RKD