Google Maps API密钥HTTP限制导致地理编码API

时间:2018-03-26 20:00:41

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

在将密钥限制到我的域后,我在Google地图API信息中心收到403地理编码API错误。密钥不受限制时,地理编码可以正常工作。目前我有以下可接受的HTTP引用:

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

我尝试过的事情:

  • 允许“https://website.com/markers”作为推荐人,以及www。版本和http版本。也使用没有http或https的版本。
  • 更改为允许网站的IP地址(当我这样做时,引用者不允许出错)
  • 仔细检查代码中对API密钥的所有引用。代码在不受限制的情况下在开发和生产中工作。
  • 仔细检查所有需要的服务是否已在Google api控制台中启用,而不是在配额上启用。

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

2 个答案:

答案 0 :(得分:1)

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

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

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

  

API密钥:API密钥是您使用的生成的唯一标识符   Google API控制台。 API密钥通常与标准一起使用   蜜蜂。 Premium Plan customers1通常可以选择使用客户端ID   或API密钥。您可以选择使用API​​密钥而无需申请   限制(称为“通用API密钥”)或具有限制的密钥   申请更高的安全性。任何平台中的API都可以使用通用API   API密钥。

     

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

     
      
  •     

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

      
  •   
  •     

    HTTP引用(网站) - 用于Web API。

      
  •   
  •     

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

      
  •   
  •     

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

      
  •   

答案 1 :(得分:1)

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