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

React项目中useOpenWeather()始终返回401未授权错误求助

解决React-Open-Weather库useOpenWeather返回401未授权错误

核心原因

你遇到的401错误是因为OpenWeatherMap的One Call API(即你请求的/data/2.5/onecall接口)需要单独的访问权限,免费版API密钥默认无法访问该接口,而你验证用的forecast接口属于免费开放范围,所以能正常返回数据。

解决方案

  • 检查API密钥的One Call API权限:
    登录OpenWeatherMap后台,进入"My API Keys"页面,确认你的密钥是否启用了One Call API 3.0(注意v2.5的One Call API已逐步淘汰,当前免费用户需使用v3.0的免费额度)。若无权限,可升级订阅或改用其他免费接口。

  • 改用库支持的其他接口调用方式:
    避免使用lat和lon参数(该参数会触发onecall接口),改用cityName或cityId参数,让库调用免费开放的weather或forecast接口。修改代码示例:

    const { data, isLoading, errorMessage } = useOpenWeather({
        key: '你的实际API密钥',
        cityName: 'Munich',
        lang: 'en',
        unit: 'metric',
    });
    
  • 确认API密钥正确性:
    确保代码中key字段的值是OpenWeatherMap后台获取的完整密钥,无多余空格或拼写错误。

  • 等待密钥激活:
    新生成的API密钥可能需要1-5分钟生效,若刚生成密钥不久,可稍作等待后再测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:55:07