You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Maps Routes API报错‘项目无权使用该API’求助

解决Google Maps Routes API调用「This API project is not authorized to use this API.」错误

核心问题分析

你用浏览器访问Geocode API正常,但Python googlemaps 库调用路线接口时报未授权,结合Direction API已在2025年3月淘汰的背景,核心问题大概率是未正确启用新版Routes API,或库版本/密钥权限不匹配。

可行解决步骤

  • 必须启用Routes API:
    Google Maps Directions API已淘汰,googlemaps 库的directions()方法现在默认调用新版Routes API。直接去Google Cloud控制台搜索并启用Routes API,不要只依赖已启用的Geocode API。

  • 检查API密钥权限:
    移除密钥限制后,还要确保密钥关联的IAM账号拥有Routes API User角色(或临时赋予Editor权限测试)。部分场景下,即使无使用限制,密钥本身缺少API调用权限也会触发错误。

  • 升级googlemaps库版本:
    旧版库可能仍在尝试调用已淘汰的Directions API,执行命令升级到最新版:

    pip install --upgrade googlemaps
    
  • 绕过库直接测试Routes API REST端点:
    排除库的问题,用requests直接调用官方REST接口验证:

    import requests
    
    API_KEY = "<你的API密钥>"
    origin = "1600 Amphitheatre Parkway, Mountain View, CA"
    destination = "48 Wall Street, New York, NY"
    
    url = "https://routes.googleapis.com/directions/v2:computeRoutes"
    headers = {
        "Content-Type": "application/json",
        "X-Goog-Api-Key": API_KEY,
        "X-Goog-FieldMask": "routes.duration,routes.distanceMeters,routes.legs"
    }
    payload = {
        "origin": {"address": origin},
        "destination": {"address": destination},
        "travelMode": "DRIVE"
    }
    
    response = requests.post(url, json=payload, headers=headers)
    print(response.json())
    

    如果这个请求成功,说明问题出在googlemaps库的使用逻辑;如果仍失败,回到控制台检查API启用状态和结算账号。

  • 确认项目结算状态:
    若Google Cloud项目的结算账号存在欠费、未验证等异常,即使API启用也会被拒绝调用。去控制台结算页面确认状态正常。

你的原始代码问题点

代码中使用的gmaps.directions()方法依赖新版Routes API,若未启用该API,必然触发未授权错误。启用Routes API后,重新运行代码即可正常调用。

内容的提问来源于stack exchange,提问作者user2517962

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:34:56