首先,我想说的是,我已经检查了该问题的所有相关答案,但由于我认为它们已经很旧并且似乎不适用于新的api,因此它们都不对我有用。
上面是我检查过的几个链接。
我正在尝试使用place api获取附近的餐馆,该地方api将由用户使用搜索栏定义半径。 这是我创建请求的方式
private String getUrl(double latitude, double longitude, String nearbyPlace, int radius) {
StringBuilder googlePlacesUrl = new StringBuilder("https://maps.googleapis.com/maps/api/place/search/json?");
googlePlacesUrl.append("location=" + latitude + "," + longitude);
googlePlacesUrl.append("&radius=" + radius);
googlePlacesUrl.append("&type=" + "restaurants");
googlePlacesUrl.append("&sensor=true");
googlePlacesUrl.append("&keyword=" + nearbyPlace);
googlePlacesUrl.append("&key=" + "xxxxxxxxxxxxxx");
Log.d("getUrl", googlePlacesUrl.toString());
return (googlePlacesUrl.toString());
}
我将上面创建的url传递给asynctask以从中获取结果。
但是每次我尝试请求时都会出现以下错误。
{“ error_message”:“该IP,站点或移动应用程序无权使用此API密钥。从IP地址103.226.226.47收到的请求,带有空引用,”,“ html_attributions”:[],“结果”: [],“状态”:“ REQUEST_DENIED”}
我也已经注册了Google Cloud Platform,以防万一,但这还是无济于事。
答案 0 :(得分:1)
我自己解决了这个问题。我所做的一切都是正确的。问题是Google Places api表示启用激活后需要5分钟。但实际上花费的时间更多。因此,我实际上是在经过差不多5分钟的时间后才检查的,它没有工作。我将其放置了大约2-3个小时,之后它开始工作。