我在 iOS 应用程序中使用 Google Places API 来获取特定地理区域内地点的自动完成建议。但是,我收到错误,但无法解决它。这是我正在使用的代码:
func searchPlaces(query: String) {
guard !query.isEmpty else {
self.querylocations = []
return
}
let token = GMSAutocompleteSessionToken()
let northWestBounds = CLLocationCoordinate2DMake(40.921628, -73.700051)
let southEastBounds = CLLocationCoordinate2DMake(40.477398, -74.259087)
let filter = GMSAutocompleteFilter()
filter.types = [kGMSPlaceTypeRestaurant]
filter.locationBias = GMSPlaceRectangularLocationOption(northWestBounds, southEastBounds)
let request = GMSAutocompleteRequest(query: query)
request.filter = filter
request.sessionToken = token
GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in
if let error = error {
print("Autocomplete error: \(error)")
return
}
if let autocompleteResults = results {
for result in autocompleteResults {
if let place = result.placeSuggestion {
self.querylocations.append(Place(name: place.attributedFullText.string,
coordinate: CLLocationCoordinate2D(),
id: place.placeID))
}
}
}
})
}
我遇到以下错误:
自动完成错误:错误 Domain=com.google.places.ErrorDomain 代码=-2 “Places API 服务器返回了我们无法理解的响应。如果您认为此错误代表一个错误,请按照以下说明提交报告我们的社区和支持页面 (https://developers.google.com/places/ios-sdk/support)。” UserInfo={NSLocalizedFailureReason=Places API 服务器返回了我们无法理解的响应。如果您认为此错误代表一个错误,请按照我们的社区和支持页面 (https://developers.google.com/places/ios-sdk/support) 上的说明提交报告。, NSUnderlyingError=0x600000e10ed0 {Error Domain=com.google.HTTPStatus Code=403“内部错误”UserInfo={NSLocalizedDescription=内部错误}}}
查看 Google Places API 文档后,我发现这是与内部服务器问题相关的错误,但我想知道是否有人遇到过此问题以及如何解决。
我检查过的内容: 我的 API 密钥正确且配置正确。 我已确保在我的 Google Cloud Console 中启用 Places API。 我已经检查了我的 API 使用配额,没有超出它们。 熟悉计费:我已确保计费处于活动状态并且与我的项目相关联。
有人以前遇到过这个问题或者对如何解决这个问题有任何想法吗?
我在使用 Google Places API 的 iOS 应用程序中遇到错误,但在 Postman 中运行良好。事实证明,API 密钥并不局限于 Places API。我转到 Google Cloud Console > API 和服务 > 凭据,添加了对 Places API 和 Places API(新)的限制,然后保存。之后,应用程序中一切正常!