Google Places API密钥问题:REQUEST_DENIED错误排查求助
遇到的错误
{ "error_message" : "This API project is not authorized to use this API.", "html_attributions" : [], "results" : [], "status" : "REQUEST_DENIED" }
已完成的配置步骤
- 正确集成Google Cloud并启用计费功能
- 创建项目并从库中启用所有必要的API
- 生成过带限制和无限制的两种API密钥
- 确认计费信息已正确配置且处于激活状态
额外排查与解决建议
确认启用的API与请求服务完全匹配
Google Places API包含多个细分服务(如Places Search、Places Details、Places Autocomplete等),可能只启用了某一个但实际调用的是另一个。去Google Cloud控制台的API库,搜索"Places",确保所有你用到的子API都已启用,比如核心Places API、Places API Advanced(若用了高级功能),以及对应移动端/网页端的细分API。检查API密钥的关联项目
生成密钥时可能选错了项目,导致密钥关联的项目没启用Places API。去「API和服务」→「凭据」,找到你的密钥,查看关联的项目ID,确认和启用API的项目一致。验证带限制密钥的规则设置
若用了带限制的密钥,限制规则可能导致请求被拒:- 应用限制:HTTP引用限制要确保请求域名完全匹配(包括http/https、www前缀);Android/iOS限制要保证包名、签名哈希完全正确。
- API限制:必须将Google Places API添加到允许的API列表中,否则即使项目启用了API,密钥也无法调用。
检查请求端点是否正确
比如Places文本搜索的正确端点是https://maps.googleapis.com/maps/api/place/textsearch/json,如果写错端点(旧版或错误路径),也会返回未授权错误。排查项目权限与配额
- 检查IAM权限:确保管理API的账号拥有「API管理员」或「项目所有者」权限,避免因权限不足导致API启用状态未生效。
- 查看配额:去控制台「配额」页面,确认Places API的配额是否耗尽(虽然通常返回OVER_QUERY_LIMIT,但偶尔异常会触发权限类错误)。
等待配置生效
Google Cloud的API启用、密钥配置可能需要几分钟(最长10-15分钟)生效,新创建的项目或首次启用API时,不要刚配置完就测试,稍等再重试。检查请求参数
缺少必要参数(如location、radius)或参数格式错误,偶尔也会被API返回权限类错误,对照官方文档确认请求URL的参数是否合规。
内容的提问来源于stack exchange,提问作者Smile Smilecityclinicyerevan

