如何使用API密钥验证来自API的请求



我正在尝试使用地理编码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

相关内容

  • 没有找到相关文章

最新更新