Как получить почасовой и 16-дневный прогноз погоды с помощью пакета openweathermap api и http

у меня нет проблем с печатью данных о погоде jsonDecoded, когда я заменяю APIkey и долготу и широту в текущем http-запросе погоды. но я каким-то образом получаю ошибку {cod: 401, message: Invalid API key.}, используя их для получения почасовых и 16-дневных данных о погоде с теми же долготой и широтой и APIkey. вот мой код:

 Future<dynamic> getHourlyWeather() async {
        Location location = Location();
        await location.getCurrentLocation();

        http.Response response = await http.get(
            'https://pro.openweathermap.org/data/2.5/forecast/hourly?lat=${location.latitude}&lon=${location.longitude}&appid=$APIkey');

        if (response.statusCode == 200) {
          String data = response.body;
          return jsonDecode(data);
        } else {
          print(response.statusCode);
        }
      }

    Future<dynamic> get16DaysWeather() async {
        Location location = Location();
        await location.getCurrentLocation();

        http.Response response = await http.get(
            'https://api.openweathermap.org/data/2.5/forecast/daily?lat=${location.latitude}&lon=${location.longitude}&cnt=10&appid=$APIkey');

        if (response.statusCode == 200) {
          String data = response.body;
          return jsonDecode(data);
        } else {
          print(response.statusCode);
        }
      }

 void initState() {
    gethourly();
    super.initState();
  }


  void gethourly() async {
    var hourly = await weather.getHourlyWeather();
    print(hourly);
  }

person azheen    schedule 26.01.2020    source источник
comment
нормально ли, что один URL-адрес API - https://pro...., а другой - https://api....?   -  person axel    schedule 26.01.2020
comment
Вы также можете перепроверить свой ключ и его доступ к OpenWeather.   -  person VipiN Negi    schedule 26.01.2020
comment
да, на сайте написано (про...) почасово, но я пробовал и API, и про   -  person azheen    schedule 26.01.2020
comment
я много проверял, у меня есть ключ как константа, и когда я использую его для получения текущей погоды, он работает, но для получения почасовой и ежедневной погоды он не работает   -  person azheen    schedule 26.01.2020


Ответы (2)


Я понял, что для получения почасовых и ежедневных данных о погоде из openweathermap требуется платная подписка.

person azheen    schedule 26.01.2020

Это можно сделать с помощью конечной точки onecall, эта конечная точка предоставляет как почасовую, так и ежедневную погоду:

https://api.openweathermap.org/data/2.5/onecall?&units=metric&exclude=minutely&appid=${appKey}&lat=${cityData.coord.lat}&lon=${cityData.coord.lon};

person H S Progr    schedule 14.06.2021