我启用了Google Distance Matrix API并限制了Android应用的密钥,因为我将从我的Android应用发送http查询以接收json响应:
没有限制,它可以工作,我得到预期的结果。但是当它被限制(使用我的包名和SHA1)时,我在json对象中收到一条失败消息,其中包含“REQUEST_DENIED”状态:
此IP,网站或移动应用程序无权使用此API密钥。从IP地址[ip_addr]收到的请求,空引用。
我从其他帖子了解到,距离矩阵API必须与服务器密钥一起使用,但在这个新的Google控制台中,没有服务器密钥的选项;你只需创建一个键并从上面选择一个限制 Firebase控制台会创建服务器密钥,我可以在我的Android应用中使用它,但没有限制。
那么如何将此密钥限制为仅使用我的Android应用程序中的Distance Matrix API?
答案 0 :(得分:1)
请注意,Android应用限制仅适用于Google Maps Android API v2和Google Maps Places for Android。 Web服务(例如,距离矩阵API)不适用于此限制。
适用于Web服务的API密钥的限制是IP限制。
假设您的后端服务器上执行了Web服务请求。如果需要限制API密钥,则解决方法是创建中间服务器。您的Android应用程序应该向中间服务器发送请求,中间服务器应该向Google发送请求并将响应传递回您的应用程序。在这种情况下,您可以通过中间服务器的IP地址限制API密钥。