La météo sur votre site

La météo sur votre site

Dans cet article, nous vous proposons d’afficher simplement la météo d’une ville sur vote site internet. Pour cela, nous vous donnons 2 options : l’API OpenWeatherMap ou l’API de 2DMS Météo. L’API de 2DMS ne nécessite pas d’inscription, contrairement à celle d’OpenWeatherMar.

Pour afficher la météo d’une ville en PHP en utilisant l’API OpenWeatherMap, vous devez suivre ces étapes :

1. Inscription à OpenWeatherMap :

  • Créez un compte sur OpenWeatherMap.
  • Après l’inscription, obtenez votre clé API dans la section « API keys » de votre tableau de bord.

2. Créer un script PHP :

Créez un fichier PHP dans lequel vous allez écrire le script pour interagir avec l’API.

3. Faire une requête à l’API :

Utilisez la fonction file_get_contents() ou cURL pour envoyer une requête HTTP GET à l’API.

Voici un exemple simple utilisant file_get_contents() :

<?php
// Clé API OpenWeatherMap
$apiKey = "VOTRE_CLE_API_ICI"; // Remplacez par votre clé API
$city = "Paris"; // Remplacez par la ville désirée
$apiUrl = "http://api.openweathermap.org/data/2.5/weather?q={$city}&appid={$apiKey}&units=metric";

// Obtenir les données de l'API
$response = file_get_contents($apiUrl);

// Convertir la réponse JSON en tableau associatif
$data = json_decode($response, true);

// Vérifier si la requête a réussi
if($data['cod'] == 200) {
    $temperature = $data['main']['temp'];
    $weatherDescription = $data['weather'][0]['description'];
    $humidity = $data['main']['humidity'];
    $windSpeed = $data['wind']['speed'];

    echo "Météo à {$city} :<br>";
    echo "Température : {$temperature}°C<br>";
    echo "Description : {$weatherDescription}<br>";
    echo "Humidité : {$humidity}%<br>";
    echo "Vitesse du vent : {$windSpeed} m/s<br>";
} else {
    echo "Erreur : Impossible de récupérer les données météorologiques.";
}
?>

4. Explications du code :

  • $apiKey : Contient votre clé API que vous avez obtenue après inscription.
  • $city : La ville pour laquelle vous voulez afficher la météo.
  • $apiUrl : L’URL de l’API avec les paramètres nécessaires, y compris la ville, votre clé API, et l’unité de mesure (ici en Celsius avec units=metric).
  • file_get_contents() : Récupère les données JSON renvoyées par l’API.
  • json_decode() : Décode le JSON en un tableau PHP.
  • $data[‘main’][‘temp’], $data[‘weather’][0][‘description’], etc. : Accède aux différentes données retournées par l’API, telles que la température, la description du temps, l’humidité et la vitesse du vent.
  • $data[‘cod’] : Code de statut HTTP retourné par l’API, qui est 200 si la requête a réussi.

5. Testez le script :

  • Sauvegardez le fichier PHP et ouvrez-le dans votre navigateur.
  • Le script affichera la météo actuelle pour la ville spécifiée.

6. Personnalisation et gestion des erreurs :

Vous pouvez personnaliser ce script pour gérer des erreurs plus précisément, afficher d’autres données météo comme la pression atmosphérique, le lever/coucher du soleil, etc., ou encore accepter des entrées utilisateur pour la ville.

Alternative : 2DMS Météo

L’API du site meteo.2dms.fr permet de récupérer des données météorologiques pour une ville spécifiée. Pour l’utiliser, vous devez faire une requête HTTP GET en spécifiant le nom de la ville dans les paramètres de l’URL.

Par exemple :

https://meteo.2dms.fr/api/?city=Paris

Le retour est en JSON, comprenant la version de l’API et les données météo. En cas d’erreur (ville non trouvée ou paramètre manquant), un message d’erreur est renvoyé.

Pour utiliser l’API du site meteo.2dms.fr en PHP, voici un exemple simple :

<?php
// Spécifiez la ville désirée
$city = "Paris";

// Construisez l'URL de l'API
$apiUrl = "https://meteo.2dms.fr/api/?city=" . urlencode($city);

// Effectuez la requête à l'API
$response = file_get_contents($apiUrl);

// Décodez la réponse JSON en tableau associatif
$data = json_decode($response, true);

// Vérifiez si la requête a réussi
if (isset($data['data']) && !isset($data['data']['error'])) {
    // Affichez les informations météo
    echo "Météo à " . $city . ": " . json_encode($data['data']);
} else {
    echo "Erreur: " . $data['data']['error'];
}
?>

Explication :

  • $city : La ville pour laquelle vous souhaitez obtenir la météo.
  • urlencode() : Assure que la ville est correctement encodée dans l’URL.
  • file_get_contents() : Envoie une requête GET à l’API.
  • json_decode() : Convertit le JSON en un tableau PHP.
  • Vérification d’erreur : Vérifie si la réponse contient des données ou une erreur.

Ce script affiche les données météo pour la ville spécifiée ou un message d’erreur si la ville n’est pas trouvée.

Image by wirestock on Freepik