
Простое бесплатное API погоды
Предлагаю простейший вариант подключения погоды на сайт в произвольном варианте по API.
Запрос данных выглядит следующим образом:
https://api.openweathermap.org/data/2.5/weather?q={city name}&units=metric&appid={API key}
Где:
{city name} – имя населённого пункта;
{API key} – ключ для подключения к API, который нужно получить в личном кабинете тут https://home.openweathermap.org/api_keys
В итоге получаем массив:
{"coord":{"lon":34.9833,"lat":48.45},"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01n"}],"base":"stations","main":{"temp":5,"feels_like":2.51,"temp_min":5,"temp_max":5,"pressure":1016,"humidity":87},"visibility":10000,"wind":{"speed":3,"deg":200},"clouds":{"all":0},"dt":1618610408,"sys":{"type":1,"id":8901,"country":"UA","sunrise":1618627550,"sunset":1618677179},"timezone":10800,"id":709930,"name":"Dnipro","cod":200}
Как вывести данные из этого массива на сайт по API?
Пишем простенький код, город указываем в конце ссылки запроса:
$url = "https://api.openweathermap.org/data/2.5/weather?q={city name}&appid={API key}" ;
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$json_output=curl_exec($ch);
$weather = json_decode($json_output);
foreach ($weather as $hyinya) {
$hyinya;
}
Затем выводим:
- Облачность – $hyinya -> weather[description]
- Текущая температура – $hyinya -> main[temp]
- Скорость ветра – $hyinya -> wind[speed]
- Влажность в % – $hyinya -> main[humidity]
Так же в результате запроса можно получить и другие данные. Более детальная документация тут https://openweathermap.org/api