Relevé météo à Bovelles, le 21/11 à 07:52
BOVELLES (80540)
Informations Météo: relevés et conditions météo sur Bovelles, Somme

                   
  Infos au 21/11 à 07:52 ➤
voici le code que j'utilise pour accéder à l'API Netatmo

au préalable:

Créer ou Modifier le fichier composer.json :

Assurez-vous que vous avez un fichier composer.json dans le répertoire de votre projet. Si vous n'en avez pas, créez-le. Ajoutez ensuite les dépendances nécessaires à votre fichier composer.json.
  {
   "require": {
       "rugaard/oauth2-netatmo": "^1.0",
       "league/oauth2-client": "^3.0"
   }
  }

Assurez-vous que Composer est installé et lancer "composer install" pour installer les dépendances nécessaires.

Puis créer un fichier php avec le code suivant:

require_once 'vendor/autoload.php';

use Rugaard\OAuth2\Client\Netatmo\Provider\Netatmo;
use League\OAuth2\Client\Token\AccessToken;

// Remplacez ces valeurs par celles de votre application Netatmo
$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
$redirectUri = 'YOUR_REDIRECT_URI';

// Créer le fournisseur Netatmo
$provider = new Netatmo([
'clientId' => $clientId,
'clientSecret' => $clientSecret,
'redirectUri' => $redirectUri
]);

// Fonction pour charger les tokens depuis le fichier
function loadTokensFromFile($file)
{
if (file_exists($file)) {
  $data = json_decode(file_get_contents($file), true);
  return new AccessToken($data);
}
return null;
}

// Fonction pour sauvegarder les tokens dans le fichier
function saveTokensToFile($file, AccessToken $accessToken)
{
$data = json_encode($accessToken->jsonSerialize(), JSON_PRETTY_PRINT);
file_put_contents($file, $data);
}

// Charger les tokens depuis le fichier
$accessToken = loadTokensFromFile('tokens.json');

// Vérifier si le token est expiré avant chaque demande à l'API Netatmo
if ($accessToken && $accessToken->hasExpired()) {
// Rafraîchir le token si nécessaire
$newAccessToken = $provider->getAccessToken('refresh_token', [
  'refresh_token' => $accessToken->getRefreshToken(),
]);

// Sauvegarder le nouveau token dans le fichier
saveTokensToFile('tokens.json', $newAccessToken);

// Utiliser le nouveau jeton d'accès
$accessToken = $newAccessToken;
}
// Gérer le processus d'authentification si le token est toujours invalide
if (!$accessToken || $accessToken->hasExpired()) {
if (!isset($_GET['code'])) {
  // Si le code d'autorisation n'est pas présent, redirigez l'utilisateur vers l'URL d'autorisation
  $authUrl = $provider->getAuthorizationUrl([
    'scope' => 'read_station'
  ]);
  header('Location: ' . $authUrl);
  exit;
} else {
  // Si le code d'autorisation est présent, obtenez le jeton d'accès en échangeant le code
  $accessToken = $provider->getAccessToken('authorization_code', [
    'code' => $_GET['code'],
  ]);

  // Sauvegarder les tokens dans le fichier
  saveTokensToFile('tokens.json', $accessToken);
}
}
// Utilisez le jeton d'accès pour accéder aux API Netatmo
$netatmoData = $provider->getResourceOwner($accessToken);
// Affichez les données Netatmo
print_r($netatmoData);
//////////////////////////////
//---Récupération des données JSON---------
//$url_devices = "https://api.netatmo.net/api/devicelist?access_token=" . $accessToken;





Qualité Air : Bonne
284 6 7 11 49 1
Bon Bon Bon Bon Bon
(Relevé OpenWeatherMap du : 21/11 à 06:30)
Pas d'alerte météo en cours

Mise à jour des données : 2024-11-21 07:52:37 -  GMT+01:00 - Lever du soleil: 08:17 -  Coucher du soleil: 16:56 -  Durée du jour: 08:38 (-2min/hier)


Données : Station Netatmo & pour les prévisions : YR.NO, Infoclimat
Pour la qualité de l'air : OpenWeathermap
© 2019-2024 meteo-bovelles.org
Site en ligne depuis le 18 septembre 2019
Mentions Légales
Ne prenez jamais des décisions importantes en vous basant sur des informations obtenues sur internet
Ne pas utiliser ce site et les données présentées pour la protection des biens et personnes
Venez découvrir le tir à l'arc : Les Archers de Sains en Amiénois
La météo à Frehel, Côtes d'Armor (22240) : meteo-frehel.com
La météo à Pontault-Combault, Seine & Marne (77340) : Pontault-Combault
Exemple de code php pour accéder aux API de NetAtmo oauth2