Google Distance Matrix API授权失败求助:已排查多项配置仍报错
我在Web项目中尝试用API密钥调用Google Distance Matrix API,为排查问题执行了以下curl测试命令:
curl "https://maps.googleapis.com/maps/api/distancematrix/json?origins=Paris&destinations=Lyon&key=___MYAPIKEY___"
但始终收到如下响应:
{ "destination_addresses" : [], "error_message" : "This API project is not authorized to use this API.", "origin_addresses" : [], "rows" : [], "status" : "REQUEST_DENIED" }
我已完成以下排查步骤,但问题仍未解决:
检查Distance Matrix API的启用状态
访问Google Cloud Console,选择对应项目,进入API与服务>库,搜索Distance Matrix API并确认已启用。检查API密钥
进入API与服务>凭据,找到请求使用的API密钥,确认curl请求中密钥正确。检查API密钥限制
为减少错误,已禁用所有密钥限制。检查账单
进入Google Cloud Console的账单页面,确认项目已关联有效账单账户,部分API即使免费请求也需关联账单。
求解决该授权失败问题。
确认API服务的准确性
确保在Google Cloud Console中启用的是Distance Matrix API,而非名称相近的其他地图类API(比如Maps JavaScript API、Geocoding API等),误启用服务会直接导致授权失败。核对API密钥的项目归属
检查当前使用的API密钥所属的Google Cloud项目,是否与启用Distance Matrix API的项目完全一致。多项目环境下很容易出现密钥和服务分属不同项目的情况。等待API启用的生效延迟
Google Cloud的API启用后通常需要1-5分钟的生效时间,首次启用时延迟可能更长,建议等待一段时间后重新发起测试请求。排查组织级权限限制
如果项目隶属于某个企业组织,确认组织管理员没有对Distance Matrix API设置全局禁用规则,或者项目本身具备调用该API的权限。生成新API密钥测试
在API与服务>凭据页面重新生成一个无限制的API密钥,直接用新密钥执行curl测试,排除旧密钥存在配置缓存或异常的可能。检查请求端点拼写
确认请求URL的端点拼写完全正确:https://maps.googleapis.com/maps/api/distancematrix/json,避免因拼写错误(比如将distancematrix写成distance-matrix)导致的服务匹配失败。
内容的提问来源于stack exchange,提问作者Gauthier

