我调查了前15个“类似问题”,但没有一个解决了我的问题。有时,对于同一个API请求,我遇到的错误是“ This IP, site or mobile application is not authorized to use this API key. Request received from IP address {*ip_address*}, with empty referer
”。我也进行了搜索,但对我而言,所建议的解决方案均无济于事。
我目前的情况
https://maps.googleapis.com/maps/api/directions/json?key=MYKEY&some_other_params
已启用API:
Bundle ID没问题
我知道我的捆绑包ID是正确的,因为我将其与另一服务(即Firebase)一起使用。为了消除错误的愚蠢错误,我从Firebase API凭据中复制了相同的Bundle ID。我的Firebase API密钥仅限于相同的Bundle ID和Firebase服务。它工作正常。
仅API限制
为消除Bundle ID问题,我还尝试了无来限制应用程序限制,并选择限制API。我一次添加了上面列出的API,并称为Directions API。没有任何效果,没有一个API(Directions API)或所有元素都没有。
关于Places API的怪异事物
我得到的一个怪异行为是我创建了一个新的API密钥,并且它不受任何限制地工作。更奇怪的是,我暂时禁用了Places API。我这样做是因为我想“刷新”我的API。我在另一个线程中读到,通过禁用并重新启用Places API解决了IP问题,因此我将其关闭但没有立即打开。我使用了一个新的API密钥,然后点击我的位置商品即可路由信息(我得到了想要的结果)。
其他限制(使用限制和计费)
我知道,这也与限制Directions API的尝试次数无关。 The documentation指出该限制为每秒50个请求。此外,我使用不受限制的API密钥进行了“项目的快速点击”,并且我总是得到路线信息。我们的项目也启用了结算功能,所以这也不是问题。
卡有不受限制的密钥
目前,我们正在使用不可接受的非受限密钥。我想知道,为什么使用不受限制的密钥可以完美地工作而限制它却不能。我确定我缺少配置,但是我尝试了所有可能想到的组合。
答案 0 :(得分:-1)
API密钥不适用于后端Web服务请求(例如Directions API)。这些API密钥仅适用于从Places SDK和Maps SDK for iOS发出的请求。这就是为什么出现错误“此IP,站点或移动应用程序无权使用此API密钥。从IP地址{ ip_address }收到的请求,带有空引用”的原因。>
根据Google Maps API key best practices,对于直接用于从移动应用程序发送的用于Web服务的API密钥,您可以执行以下一种或多种技术来保护API密钥: