为什么我的项目无权使用API​​密钥?

时间:2018-09-24 15:36:48

标签: android http api-key

我为我的Android应用程序生成了API密钥,该密钥需要地图和当前位置信息。 API密钥必须很好,因为我可以访问当前位置和地图。但是当我尝试以下代码时:-

 public void run(){
        String addressURL = "https://maps.googleapis.com/maps/api/geocode/json?latlng="
                +Double.toString(lat)+","+Double.toString(lon)+"&sensor=true&key="+getString(R.string.api_key);
        Log.d(Globals.TAG, "Request to = " + addressURL);
        httphandler = new HttpHandler(addressURL);
        httphandler.addHttpLisner(MapsActivity.this);
        httphandler.sendRequest();
    }

   if (http.getResCode() == HttpURLConnection.HTTP_OK
                    || http.getResCode() == HttpURLConnection.HTTP_ACCEPTED) {
                String resp = http.getResponse();
 }

我得到响应= {    “ error_message”:“该API项目无权使用此API。”,    “结果”:[],    “状态”:“ REQUEST_DENIED” }

我不知道为什么?我正在共享我的Google控制台API密钥设置图片:-

enter image description here

enter image description here

enter image description here

我的API密钥设置正确吗?如何为HttpHandler使用API​​密钥?

2 个答案:

答案 0 :(得分:0)

在左侧的点击库中搜索maps api。

您可能还必须启用一个计费帐户。

答案 1 :(得分:0)

为了扩展API限制,您必须先启用Geocoding API ...

然后可以将其分配为“ API限制”(由于其他限制而需要)。

对于HTTPS REST API访问,您可能不需要“应用程序限制”,

因为这基本上等同于Web应用程序从动态IP访问API ...

尽管如此,仍需要为项目启用Geocoding API并允许其使用密钥。

如果要限制IP,则必须使用具有静态IP的应用程序来调用自己的Web服务。