与此API一起使用时,API密钥浏览器API密钥不具有引用限制

时间:2017-02-10 19:57:52

标签: api maps geocoding

我正在尝试编程地理编码。我创建了API密钥,但是当我将它添加到我的网站代码中时,我没有得到任何东西,但是当我不使用API​​时,一切都运行良好。当我发送时:

octave:5> words(3:4)
ans = 
{
  [1,1] = are
  [1,2] = you 
}

我收到回复:

https://maps.googleapis.com/maps/api/geocode/json?address=".$adres."&key=KLUCZ_XXX

如果我使用:

Browser API keys cannot have referer restrictions when used with this API.

结果是正确的,但每天的查询数量有限。

密钥约束:引用HTTP(Web) - 设置为召唤查询的域。界面Google Maps Geocoding API已开启。

是否必须在其他地方激活API密钥才能工作?

3 个答案:

答案 0 :(得分:52)

听起来你可能正在建立API调用服务器端。我今天早些时候遇到了这个问题。由于您已对API密钥设置了引荐来源限制,因此它将仅限于使用Web服务API在浏览器上执行,包括Geocoding API。即使在请求标头中手动设置引荐来源,它也不适用于我。您可以在此页面上找到其他Web服务API:https://developers.google.com/maps/web-services/

  

重要提示:如果您使用具有引用引用的API密钥的任何Web服务API,则您的请求将失败并显示错误消息:“API密钥在与此API一起使用时不能具有引用限制。”您应该切换到使用服务器限制。

您需要创建一个单独的密钥才能使用服务器端。您可以使用IP地址来限制访问,而不是使用浏览器引用来将限制从浏览器限制更改为服务器限制

有关将密钥类型切换为服务器限制密钥的地图API常见问题解答,请参阅此部分:https://developers.google.com/maps/faq#switch-key-type

或者,您可以继续使用浏览器密钥和地理编码客户端(JavaScript),然后通过ajax将结果返回到后端。

答案 1 :(得分:0)

如果不是服务器端地理编码,则应使用Google Javascript API中的地理编码器。您可以在该API上设置HTTP引用限制。

Google本身说to avoid the Non-Javascript Geocoder API for dynamic geocoding

  

此服务通常是为静态地理编码而设计的   (预先知道)用于将应用程序内容放置在   地图;此服务并非旨在实时响应用户   输入。用于动态地理编码(例如,在用户界面中)   元素),请参阅Maps JavaScript API客户端的文档   地理编码器和/或Google Play服务的位置API。

答案 2 :(得分:-1)

在您的Google API仪表板凭据中,您需要添加一个例外

https://*.google.com/*