2017-02-10 99 views
5

我正在尝试对地址解析进行编程。我创建了API密钥,但是当我将它添加到我的网站代码中时,我什么也没得到,但是当我不使用API​​时,一切都很好。当我送:API密钥浏览器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地图地理编码API已打开。

是否还要在其他地方启用API密钥才能工作?

回答

12

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

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

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

查看切换键类型的受限密钥服务器在Maps API的常见问题本节:https://developers.google.com/maps/faq#switch-key-type

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