【发布时间】:2019-07-01 16:20:02
【问题描述】:
我的 android 和 iOS 应用程序使用相同的无限制(平台和服务)api 密钥进行地理编码距离矩阵位置服务。我想为单独的服务和平台使用单独的受限密钥。在谷歌云控制台中,如何限制不同平台的密钥?我应该使用和 android 提供包名称和 sha1 以及带有捆绑 ID 的 iOS,还是应该使用我的服务器的 IP 地址?最佳做法应该是什么?我正在使用改造来打这些 api。
有时键会以this IP, site or mobile application is not authorized to use this API key. Request received from IP address 202.65.11.56, with empty referer 响应,然后又会以正确的响应响应。为什么会出现这种异常?
我还在使用地点自动完成 sdk 搜索地点,并且为了获取几何,我正在使用 place_id 调用地理编码,我是否应该为此在地理编码 api 密钥中授予地点 api 权限?
【问题讨论】:
-
@xomena 我已阅读并了解我需要从 android 或 iOS 更改对服务器 IP 的限制。现在我的问题是在这种情况下如何使用服务器 ip 受限 api 密钥直接调用地理编码或方向 api?如果我想使用受限密钥,是否需要从我的服务器调用并从服务器检索响应?因为直接来自 android 的 ip 并不总是相同的。如果我从我的服务器调用,性能会根据我的服务器性能而有所不同,对吗?
-
stackoverflow.com/a/46185362/5339146 也检查了这个答案并关心性能
-
是的,如果您想限制 API 密钥,Google 建议使用中间服务器。
标签: android ios google-maps google-geocoding-api