【问题标题】:Why is my project not authorized to use an API key?为什么我的项目无权使用 API 密钥?
【发布时间】:2018-09-24 15:36:47
【问题描述】:

我为需要地图和当前位置信息的 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 密钥设置图片:-

我的 API 密钥设置是否正确? HttpHandler如何使用API​​ key?

【问题讨论】:

  • 不是答案,但我在 Android 应用程序中使用了自动完成功能,但我没有进行实际的 HTTP REST 调用。相反,我使用了 Android 自动完成小部件。您确定可以在 Android 设备上以这种方式使用 API 吗?
  • 是的,这都是工作代码。最近我更新为使用最新的位置 API。更新后,我遇到了这个问题。
  • 问题:如果您将该 URL 转储到 Web 浏览器(已填写占位符),您会得到什么响应?另外,除了升级 API 级别之外,您还记得更改了其他任何内容吗?
  • 我收到与“此 API 项目无权使用此 API 的授权。我尝试使用另一个不受限制的 API 密钥。我收到相同的错误。

标签: android http api-key


【解决方案1】:

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

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

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

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

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

如果你想要 IP 限制,你必须用你的应用调用你自己的网络服务,拥有静态 IP。

【讨论】:

    【解决方案2】:

    点击左侧的库搜索maps api 启用它。

    您可能还必须启用结算帐户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-28
      • 2012-05-01
      • 1970-01-01
      • 2012-07-18
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      相关资源
      最近更新 更多