Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序受限API密钥能否用于谷歌距离矩阵?_Android_Google Api_Google Distancematrix Api - Fatal编程技术网

Android应用程序受限API密钥能否用于谷歌距离矩阵?

Android应用程序受限API密钥能否用于谷歌距离矩阵?,android,google-api,google-distancematrix-api,Android,Google Api,Google Distancematrix Api,我启用了Google Distance Matrix API并限制了Android应用程序的密钥,因为我将从Android应用程序发送http查询以接收json响应: 没有限制,它工作,我得到了预期的结果。但是当它受到限制时(使用我的包名和SHA1),我会在json对象中收到一条失败消息,状态为“REQUEST_DENIED”: 此IP、站点或移动应用程序无权使用此API密钥。从IP地址[IP_addr]接收的请求,引用为空 从其他帖子中,我了解到距离矩阵API必须与服务器密钥一起使用,但在这

我启用了Google Distance Matrix API并限制了Android应用程序的密钥,因为我将从Android应用程序发送http查询以接收json响应:

没有限制,它工作,我得到了预期的结果。但是当它受到限制时(使用我的包名和SHA1),我会在json对象中收到一条失败消息,状态为“REQUEST_DENIED”:

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

从其他帖子中,我了解到距离矩阵API必须与服务器密钥一起使用,但在这个新的Google控制台中,没有服务器密钥的选项;您只需创建一个密钥并从上面选择一个限制。
Firebase Console创建了一个服务器密钥,我可以在我的android应用程序中使用它,但不受限制


那么,如何将此密钥限制为仅从我的android应用程序使用距离矩阵API?

请注意,android应用程序限制仅对Google Maps android API v2和Google Maps Places for android有效。Web服务(如距离矩阵API)不适用于此限制

将与web服务的API密钥一起使用的限制是IP限制


假设web服务请求在后端服务器上执行。如果需要限制API密钥,解决方法是创建一个中间服务器。您的Android应用程序应该向中间服务器发送请求,中间服务器应该向Google发送请求,并将响应传递回您的应用程序。在这种情况下,您可以通过中间服务器的IP地址限制API密钥。

我也有同样的问题,只是我尝试使用API。如果你找到了解决办法,最好知道。我没有找到解决办法。我在地理编码API中也有这个。看起来有关联。该操作也在谷歌上打开了一个新的窗口。由于我找不到更好的解决方案,我最终在我的服务器上配置了一个反向代理。所以请求从我的android应用程序传到我的服务器,然后传到谷歌。我的服务器在将请求发送到google之前将api密钥添加到请求中。这样我可以通过IP限制我的密钥。