调用HERE Routing API时提示apiKey未授权该如何解决?
问题原因与解决方案
首先你的代码存在变量替换逻辑缺失的问题:你在url字符串中使用了{api_key}作为占位符,但Python普通字符串不会自动识别替换该占位符,即便你提前定义了api_key变量的值,请求时实际发送的url依然会携带明文的{api_key}字符,导致密钥校验失败。
修复后的代码示例
import requests # 替换为你自己的真实API密钥 api_key = "你的实际API密钥" # 加f前缀启用f字符串,自动替换占位符 url = f'https://router.hereapi.com/v8/routes?transportMode=car&origin=52.5308,13.3847&destination=52.5323,13.3789&return=summary&apiKey={api_key}' response = requests.get(url) print(response.json())
其他排查方向
如果修改代码后依然报错,按以下顺序排查:
- 检查API密钥复制是否正确,不要携带多余的空格、换行符,不要漏拷字符
- 登录HERE后台确认当前密钥已经开启了Routing API v8的访问权限,新生成的密钥默认可能未开通对应服务权限
- 刚注册的账号或刚生成的密钥可能存在最长5分钟的生效延迟,等待后重试即可
- 确认你的账号套餐未超出免费调用额度,超出额度后也可能返回权限类报错
内容的提问来源于stack exchange,提问作者Walter
相关产品推荐
相关产品推荐

