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

问题描述 投票:29回答:3

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

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.

如果我使用:

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

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

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

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

api maps geocoding
3个回答
55
投票

听起来你可能正在建立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将结果返回到后端。


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.