Google Places API iOS每日限制未经validation使用超出错误

我正在尝试使用iOS的谷歌地方的API。 我创build了一个API键,然后我试图调用一些方法。 我已经进入应用程序的api键,但是当我打电话,我得到一个这个错误

lookup place id query error: The operation couldn't be completed. (com.google.places.server.ErrorDomain error -1.) Error Domain=com.google.places.server.ErrorDomain Code=-1 "(null)" UserInfo={NSUnderlyingError=0x7f8bf861ca80 {Error 

域= com.google.GTLJSONRPCErrorDomain代码= 403“(每日限制为未经validation的使用超过,继续使用需要注册。)”UserInfo = {错误=未经validation的使用超过每日限制。 继续使用需要注册。,NSLocalizedFailureReason =(每日限制为未经validation的使用超出。继续使用需要注册。),GTLStructuredError = GMSx_GTLErrorObject 0x7f8bf2be6060:{消息:“每日限制为未经validation的使用超出,继续使用需要注册。 data:[1] code:403}}}}

我使用GMSServices.provideAPIKey(“MY_API_KEY”)在我的appdelegate中提供了API key,并且给出了应用程序的位置访问权限。 我当然没有超过我的使用限制(我的配额显示为0的1000),因为我没有能够与API交谈。 我已经重新生成了一些密钥,我也创build了其他Gmail帐户的其他密钥,但没有任何工作…

我的猜测是要么是不正确的ios模拟器的位置(我提供了一个gpx文件来传递一个自定义位置)或从谷歌方面是错误的。

我在代码中的两个示例是:

  let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" placesClient.lookUpPlaceID(placeID, callback: { (place: GMSPlace?, error: NSError?) -> Void in if let error = error { print("lookup place id query error: \(error.localizedDescription)") print(error) return } if let place = place { print("Place name \(place.name)") print("Place address \(place.formattedAddress)") print("Place placeID \(place.placeID)") print("Place attributions \(place.attributions)") } else { print("No place details for \(placeID)") } }) 

  placesClient.currentPlaceWithCallback({ (placeLikelihoods, error) -> Void in guard error == nil else { print("Current Place error: \(error!.localizedDescription)") return } if let placeLikelihoods = placeLikelihoods { for likelihood in placeLikelihoods.likelihoods { let place = likelihood.place print("Current Place name \(place.name) at likelihood \(likelihood.likelihood)") print("Current Place address \(place.formattedAddress)") print("Current Place attributions \(place.attributions)") print("Current PlaceID \(place.placeID)") } } }) 

placesClient是一个var实例化为GMSPlacesClient()。 我在这里错过了什么? 其余的代码是一个典型的Xcode单一应用程序项目。

在这里回答我自己的问题!

原来这个错误完全是我的(正如通常那样)。 我这样设置placesClient var

 var placesClient = GMSPlacesClient() 

在谷歌的例子( 检查它在这里 )placesClient var声明为一个可选的GMSPlacesClient,然后在viewDidLoad设置为GMSPlacesClient.sharedClient()。 不幸的是我错过了那部分。 代码是这样的

 var placesClient: GMSPlacesClient? override func viewDidLoad() { super.viewDidLoad() placesClient = GMSPlacesClient.sharedClient() }