为什么我的应用程序在给予 Google API 密钥限制后总是未被授权?

sar*_*rah 3 google-maps google-maps-api-3 ios google-geocoder google-cloud-platform

我试图阅读一些关于这个问题的类似主题。但不幸的是我仍然遇到同样的问题。

所以基本上,我正在尝试使用 Goole Geocode API 将我的纬度经度的地理编码反转为人类可读的地址。

为了更安全,我对我的 iOS 应用程序的 API 密钥给予了更多限制。这是密钥的应用限制

在此处输入图片说明

而且我还给出了这样的 API 密钥限制,我确定我已经包含了地理编码 API 在此处输入图片说明

我还为我的项目启用了地理编码 API 在此处输入图片说明

但是当我运行应用程序时......我收到错误消息

此 IP、站点或移动应用程序无权使用此 API 密钥。从 IP 地址 xxxxxx 收到的请求为空引用

这里出了什么问题?如果限制设置为无,它工作正常

xom*_*ena 6

您不能将 iOS 应用限制用于 Google 地图网络服务。假设您在后端服务器上执行 Web 服务请求,并且 Geocoding API 和 Places API 唯一支持的限制是 IP 地址限制。

这个事实记录在这里

https://developers.google.com/maps/api-key-best-practices#api_key_table

对于移动应用程序,Google 建议使用代理请求的中间服务器。您的应用程序向中间服务器发送请求,中间服务器使用受保护的 API 密钥向 Google 发送请求,并将响应传回移动应用程序。在这种情况下,您可以通过中间服务器的 IP 地址应用限制。

您可以阅读有关此方法的信息

https://codelabs.developers.google.com/codelabs/google-maps-web-services-proxy/index.html

希望这个回答能解决你的疑惑。