TUTO PHP - API météo professionnelle gratuit


Par Samet Lecture: 19 minutes

Bonjour à tous,


Il y a quelque temps je vous ai fait un tutoriel sur l’intégration d'une API météo qui consistait à placer certaine information dans L’URL d'une balise du type :
 <iframe src=""></iframe>
 Pour ensuite récupérer les information météorologique sous forme d'images.

Alors oui c'est un bon système mais toutefois le nombre d'informations reçu est limitées et le design est impossible à changer donc ce n'est pas très agréable.

C'est pourquoi aujourd'hui je vous propose un nouveau tutoriel sur l’intégration d'une API météo, cette API vient du même site que le tutoriel précédent mais il faut savoir qu'ils proposent 3 type d'intégration.

1) La méthode tu tutoriel précédent.
2) La méthode du tutoriel précédent mais avec plus de paramètre dans L’URL pour par exemple changer la couleur de fond ou afficher la météo d'un autre jour que celui actuel.
3) La troisième méthode est la méthode la plus professionnelle, il s'agit de récupérer toutes les informations météorologique d'une région sous forma "Json" et ensuite les afficher sur le site comme souhaité.
Dans ce cas nous allons intégrer la troisième méthode qui va nous permettre de récupérer beaucoup plus d'information.
Tout d'abord nous devons choisir la localisation de la région dont on veut récupérer les information.
Pour ce faire il existe 2 méthodes : La première consiste à passer en paramètre la longitude et la latitude de la région souhaité et la deuxième consiste a passer directement le nom de la ville.
Nous allons prendre la deuxième méthode car pour la première il est impossible de récupérer le nom de la ville .


// Nous commençons par définir L’URL de l'API avec les paramètre.
<?php
$localite = 'https://www.prevision-meteo.ch/services/json/NOM DE LA VILLE';


Pour savoir la bonne configuration de votre ville vous pouvez visiter ce site .
//Nous allons maintenant récupérer les information sous forme d'objet Json
$json = file_get_contents($localite);


Maintenant nous devons décoder les  informations

$json = json_decode($json);

Il nous reste plus qu'a afficher les information en appelant chaque objet.

//Nous allons déclarer quelques information basics
$nom =  $json->city_info->name;
$temperature =  $json->current_condition->tmp;
$lsolei = $json->city_info->sunrise;
$csoleil = $json->city_info->sunset;
$vent = $json->current_condition->wnd_spd;
$heure = $json->current_condition->hour;
$date = $json->current_condition->date;
$pression = $json->current_condition->pressure;
$humidite = $json->current_condition->humidity;
$condition = $json->current_condition->condition;



<!DOCTYPE html>
<html>
<head>
<title>TUTO API METEO</title>
<meta charset="utf-8">
</head>
<body>
<!-- Nous affichions les informations contenu dans les variables -->
Nom de la ville : <?php echo $nom; ?> <br />
Température : <?php echo $temperature; ?> <br />
Lever du soleil : <?php echo $lsolei; ?> <br />
Coucher du soleil : <?php echo $csoleil; ?> <br />
Vitesse du vent : <?php echo $vent; ?> <br />
Date actuelle : <?php echo $date; ?> <br />
Heure actuelle : <?php echo $heure; ?> <br />
Pression : <?php echo $pression; ?> <br />
Humitité : <?php echo $humidite; ?> <br />
Condition : <?php echo $condition; ?> <br />
</body>
</html


Demo



 Il n'y a que ça comme informations ? Et bien non ! Voici la liste de tout les informations que l'on peut ajouter.

Infos localité

Nom de la localité city_info->name
Latitude city_info->latitude
Longitude city_info->longitude
Altitude city_info->elevation
Heure de lever du soleil city_info->sunrise
Heure de coucher du soleil city_info->sunset
Infos du point réel de la prévision
Latitude forecast_info->latitude
Longitude forecast_info->longitude
Altitude forecast_info->elevation
Conditions actuelles
Date current_condition->date
Heure current_condition->hour
Température current_condition->tmp
Vitesse du vent current_condition->wnd_spd
Vitesse du vent en rafale current_condition->wnd_gust
Direction du vent current_condition->wnd_dir
Pression current_condition->pressure
Humidité current_condition->humidity
Conditions (texte) * current_condition->condition
Icône current_condition->icon
Icône (grande) Current_condition->icon_big
Prévisions J0
Date fcst_day_0->date
Jour (format court) fcst_day_0->day_short
Température minimale fcst_day_0->tmin
Température maximale fcst_day_0->tmax
Conditions (texte) * fcst_day_0->condition
Icône fcst_day_0->icon
Icône (grande) fcst_day_0->icon_big
Données horaires
0H00
Icône Fcst_day_0->hourly_data->0H00->ICON
Conditions (texte) 
Fcst_day_0->hourly_data->0H00->CONDITION
Température [°C] Fcst_day_0->hourly_data->0H00->TMP2m
Point de rosée [°C] Fcst_day_0->hourly_data->0H00->DPT2m
Refroidissement éolien [°C] Fcst_day_0->hourly_data->0H00->WNDCHILL2m
Humidité relative [%]
Fcst_day_0->hourly_data->0H00->RH2m
Pression atmosphérique [Hpa]
Fcst_day_0->hourly_data->0H00->PRMSL
Précipitations [mm]
Fcst_day_0->hourly_data->0H00->APCPsfc
Vitesse du vent à 10m [Km/h]
Fcst_day_0->hourly_data->0H00->WNDSPD10m
Rafales à 10m [Km/h] Fcst_day_0->hourly_data->0H00->WNDGUST10m
Direction du vent [°] Fcst_day_0->hourly_data->0H00->WNDDIR10m
Direction du vent Fcst_day_0->hourly_data->0H00->WNDDIRCARD10
Type de précipitation [0 = pluie,1 = neige]
Fcst_day_0->hourly_data->0H00->ISSNOW
Nuages haute altitude Fcst_day_0->hourly_data->0H00->HCDC
Nuages moyenne altitude Fcst_day_0->hourly_data->0H00->MCDC
Nuages basse altitude Fcst_day_0->hourly_data->0H00->LCDC
Isotherme zéro degré [°C] Fcst_day_0->hourly_data->0H00->HGT0C
K-index (potentiel orageux) Fcst_day_0->hourly_data->0H00->KINDEX
CAPE 180-0
Fcst_day_0->hourly_data->0H00->CAPE180_0
CIN 180-0
Fcst_day_0->hourly_data->0H00->CIN180_0
1H00
23H00
Prévisions J1 fcst_day_1->XXX
Prévisions J2 fcst_day_2->XXX
Prévisions J3 fcst_day_3->XXX



Maintenant c'est à votre tour de jouer , il ne vous reste plus qu'a personnaliser votre système et votre design , par exemple afficher les données dans un tableau , rajouter des couleur , des style etc ...


Bref c'est la fin de ce tutoriel, j'espère que vous l'aurez aimé. N'oubliez pas de lâcher un petit commentaire si vous avez aimé et à bientôt .>