我已经在我的应用程序中运行 Google 地图和 Google Places API 大约一年了。我今天醒来,无法使用灰色的地图或搜索。在控制台中:
错误自动完成错误 Domain=com.google.places.ErrorDomain 代码=-4“由于 API 密钥无效(格式错误或丢失),操作失败。请参阅开发人员指南 (https://developers.google.com/places) /ios-sdk/start)了解有关创建和使用 API 密钥的信息。” UserInfo={NSLocalizedFailureReason=由于 API 密钥无效(格式错误或丢失),操作失败。有关创建和使用 API 密钥的信息,请参阅开发人员指南 (https://developers.google.com/places/ios-sdk/start)。, NSUnderlyingError=0x283e81560 {Error Domain=com.google.places.api .server.ErrorDomain Code=-2 "REQUEST_DENIED" UserInfo={NSLocalizedFailureReason=此 API 项目无权使用此 API。请确保在 Google Developers Console 中激活此 API:https://console.developers.google.com/apis/api/places_backend?project=_, NSLocalizedDescription=REQUEST_DENIED}}}
问题是我的所有 API 都在正确的位置调用,并且我已经能够使用地图一段时间了。为什么突然就不行了?
最近 Google 发布了新版本的 Places SDK 客户端,并弃用了之前的版本。我相信您应该尽快迁移到新版本,因为已弃用的版本很快就会停止工作。
新的 Places SDK 客户端要求您在云项目中启用 Places API Web 服务。错误消息
This API project is not authorized to use this API. Please ensure this API is activated in the Google Developers Console: https://console.developers.google.com/apis/api/places_backend?project=_,
指的是 Places API Web 服务。
仔细检查 Places API Web 服务是否已启用、API 密钥是否已创建以及计费帐户是否已正确配置。
官方文档有如下说法
要使用适用于 iOS 的 Places SDK,您必须:
- 在所有 API 请求中包含 API 密钥。
- 对每个项目启用计费。
- 为您的每个项目启用 Places API 服务
有关更多详细信息,请查看迁移指南: https://developers.google.com/places/ios-sdk/client-migration
我希望这有帮助!