我刚开始为正在开发的应用程序使用Google Maps和Google Places API。将请求发送到if word not in words:
words.append(word)
端点时,我仍然收到OVER_QUERY_LIMIT
错误,即使我发出的请求数量非常少。
我知道这不是API密钥,因为除非更改或删除要发送的https://maps.googleapis.com/maps/api/place/autocomplete/json
查询参数,否则我不会收到无效密钥错误。
我用于调用API的代码(通过Android上运行的NativeScript Angular应用):
key
有趣的笔记:
import { Location as Geolocation } from "nativescript-geolocation";
import { TokenModel } from "nativescript-ui-autocomplete";
// And other stuff
// Injectable class, blah blah blah
public getRestaurantSuggestions(
search: string,
location: Geolocation = null
): Observable<TokenModel[]> {
let route: string = "https://maps.googleapis.com/maps/api/place/autocomplete/json";
route += `?key=${AppConstants.GOOGLE_MAPS_API_DEV_KEY}`;
route += `&keyword=${search}`;
route += "&types=establishment";
if (location) {
route += `&location=${location.latitude},${location.longitude}`;
route += `&radius=${AppConstants.GOOGLE_MAPS_SEARCH_RADIUS}`;
}
return this._http.get(route).pipe(
map((response: Response) => {
return response.json();
}),
map((response: {
error_message: string,
predictions: { name: string }[],
status: string
}) => {
if (response.error_message) {
throw new Error(`${response.status}: ${response.error_message}`);
}
return response.predictions.map(p => {
return new TokenModel(p.name, null);
});
}),
catchError((error: Error) => {
return throwError(error.message);
})
);
}
错误响应OVER_QUERY_LIMIT
以下是Google开发者控制台中“使用中的API”表中的当前数字:
OVER_QUERY_LIMIT
如您所见,FAR的数量少于未设置信用卡或任何其他设置所允许的最大请求数量。
发生了什么事?
编辑
According to this,Google刚刚对其进行了更改,因此您必须设置结算信息才能使用Places API。当我在开发我的应用程序的Alpha版本时熟悉API时,我为此深感遗憾。我将继续设置帐单信息,看看是否可以解决该问题。
答案 0 :(得分:0)
这是我所怀疑的。正如我在对问题according to this所做的修改中所述,Google刚刚对其进行了更改,因此您必须设置结算信息才能使用Places API。
确实如此,这让我感到无聊,但我想那是适合您的Google。
现在,我要进行另一次冒险-在每个请求上遇到INVALID_REQUEST
错误。 :/