【问题标题】:Google maps API key HTTP restriction causes 403 error in geocoding APIGoogle 地图 API 密钥 HTTP 限制导致地理编码 API 出现 403 错误
【发布时间】:2018-03-26 20:00:40
【问题描述】:

在将密钥限制为我的域后,我在地理编码 API 的 google maps API 仪表板中收到 403 错误。当密钥不受限制时,地理编码工作。目前,我有以下可接受的 HTTP 引荐来源网址:

这允许我的基本 javascript 地图和自动完成表单在 HTML 页面上工作。但是,地理编码是通过访问 website.com/markers 的 python 脚本完成的(没有 HTML 页面,如果您访问它只会显示 JSON 数据)。有没有理由它不起作用? 403 错误是我在 API 仪表板中看到的,但我在访问 website.com/markers 时收到内部服务器错误消息。不受限制时,仪表板显示响应代码 200,我可以看到正确的 JSON 数据。因此,我相信我的代码不是问题。

我尝试过的事情:

  • 允许“https://website.com/markers”作为推荐人,以及 www.版本,和http版本。也使用了没有 http 或 https 的版本。
  • 更改为允许网站的 IP 地址(执​​行此操作时出现不允许引用的错误)
  • 仔细检查代码中对 API 密钥的所有引用。在不受限制的情况下,代码可以在开发和生产中运行。
  • 仔细检查所有需要的服务是否已在 Google api 控制台中启用且未超出配额。

我已经为此问题搜索了几个小时,但找不到答案,如果我忽略了一些简单的事情,请放轻松。

【问题讨论】:

    标签: google-maps google-maps-api-3 google-geocoding-api


    【解决方案1】:

    听起来您正在尝试使用旨在与客户端 Web api 一起使用的 URL 限制方法。在这种情况下,将在验证中使用站点的公共 URL。

    您想使用 IP 地址验证,用于服务器端调用。

    以下来自https://developers.google.com/maps/faq#keysystem

    API 密钥:API 密钥是您使用 谷歌 API 控制台。 API 密钥通常与标准一起使用 蜜蜂。高级计划客户1 通常可以选择使用客户 ID 或 API 密钥。您可以选择使用 API 密钥而无需申请 限制(称为“通用 API 密钥”)或有限制的密钥 申请更高的安全性。任何平台中的 API 都可以使用泛型 API 密钥。

    您可以选择将限制(例如,IP 地址)添加到 API 密钥。一旦受到限制,密钥只能在以下平台上工作 支持这种类型的限制。四种 API 密钥限制 可用:

    • IP 地址(单个服务器)- 用于 Web 服务 API。

    • HTTP 引荐来源网址(网站)- 与 Web API 一起使用。

    • Android 应用限制(按包名称和指纹)- 用于 Android API。

    • iOS 应用限制(通过 iOS 包标识符)- 供使用 使用 iOS API。

    【讨论】:

    • 这完全有道理,感谢您的快速回复!这是我第一次在生产站点上设置限制,所以我很困惑。
    • 酷,乐于助人!祝你的项目好运:)
    【解决方案2】:

    您需要为 Web 服务使用不同的密钥。您不能对同一个密钥同时应用 HTTP 和 IP 限制。您的 Google Maps Javascript API v3 密钥需要 HTTP 限制,您的网络服务密钥需要 IP 限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      • 2018-10-15
      相关资源
      最近更新 更多