方向API请求被拒绝Android客户端

方向API请求被拒绝Android客户端,android,google-directions-api,map-directions,Android,Google Directions Api,Map Directions,我正在尝试从android向directions api发出请求。我已经构建了我的请求url,如下所示: https://maps.googleapis.com/maps/api/directions/json?mode=driving&transit_routing_preference=less_driving&origin=12.84938,77.6554783&destination=151,+9th+Main+Road,+HSR+Layout+Sector+6,

我正在尝试从android向directions api发出请求。我已经构建了我的请求url,如下所示:

https://maps.googleapis.com/maps/api/directions/json?mode=driving&transit_routing_preference=less_driving&origin=12.84938,77.6554783&destination=151,+9th+Main+Road,+HSR+Layout+Sector+6,+Bengaluru,+Karnataka+560102&key=MYAPI_KEY
但是在测试端点时,我得到了以下错误:

{
   "error_message" : "This IP, site or mobile application is not authorized to use this API key. Request received from IP address 223.227.127.66, with empty referer",
   "routes" : [],
   "status" : "REQUEST_DENIED"
}
我已经研究了其他类似的问题,其中提到了
服务器键和浏览器键
。如何获取服务器密钥?它与注册
方向或地图api时收到的api密钥不一样吗

谢谢您的帮助。

  • 确保在Developer中应用程序限制为“无” 控制台
  • 方向API需要IP限制,如果你给出 Android限制它将响应为“请求被拒绝”

  • 所以您需要中间服务器,然后需要限制使用 服务器IP

  • 因此,将限制设置为无。

directions web api实际上并不打算直接在移动应用程序中使用。如果只是为了好玩,您可以在应用程序中使用不安全的服务器密钥,但对于生产应用程序,您应该使用代理服务器,这将是您自己的服务器,向directions web api发送请求(您的应用程序可以查询您的服务器端点,该端点将查询directions web api,然后向您的应用程序发送结果)。更多信息请参见此处:谢谢Daniel。如果我创建了一个能够访问同一个端点的Nodejs服务器,并且我的客户端应用程序(android)向服务器提供的端点发出了一个req,它会工作吗?我的意思是这样--1。服务器——使用我的apikey向Dir API发出请求。2.客户端向服务器提供的端点发出请求---@Andromeda您找到解决方案了吗?我也面临同样的问题