Recuperer les infos de opendatasoft

Bonjour,

Je cherche a récupérer des données de openeventdatabase et dans un premier temps plus spécifiquement la Vigilence meteo :Home · openeventdatabase/backend Wiki · GitHub

Mais n’ayant ni les connaissances ni les compétences pour faire ça via script et scénario, est ce que quelqu’un aurait sous la mais un tuto ou une idée du comment faire?

Bonjour,

Je n’ai pas l’impression que le contenu soit mis à jour souvent …
http://api.openeventdatabase.org/event?what=weather.alert retourne rien
et
avec http://api.openeventdatabase.org/event la donnée la plus récente à 1 an …

En effet j’avais pas fait attention. Entre temps j’ai trouvé : Vigilance Météorologique — Opendatasoft

Qui contient un api ce qui devrait simplifier les choses.

Avec un petit bloc code :
image

Le bloc :

$tags=$scenario->getTags();
$dept=$tags['#département#'];
$url = 'https://data.opendatasoft.com/api/records/1.0/search/?dataset=vigilance-meteorologique%40public&q='.$dept.'&lang=fr&rows=1&facet=couleur&facet=risque_valeur';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if ($data !== false)
	$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);

if ($data !== false && $status === 200) {
	$decoded = json_decode($data);
	$record=$decoded->records[0];
  	$tags['#risque#']=$record->fields->risque_valeur;
  	$tags['#niveau#']=$record->fields->couleur;
  	$tags['#commentaire#']=$record->fields->vigilancecommentaire_texte;
    $scenario->setTags($tags);
}
else {
 	$scenario->setLog("Erreur, le site a retourné le code : ".$status); 
}

3 J'aime

J’essaie de décortiquer tout ça et de l’appliquer a d’autres données dispo sur le site.

Merci beaucoup pour ton aide.

Pour le département, j’ai réussi a le mettre en « dur » dans l’url mais je comprends pas comment le changer via le tag #departement#.

Edit : OK vu je vais remettre mes lunettes…

Ca marche nickel merci. J’ai trois questions maintenant :

  • je comprends le reste du code mais pas cette partie, si quelqu’un peut m’expliquer ces lignes :
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
if ($data !== false)
	$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
  • Où trouver des tuto pour ces bloc codes ?

  • Comment tester vous vos codes ? Je suis moyen chaud pour le faire sur mon jeedom de prod…

la fonction curl en php utilise un bloc de données pour lancer la requête; ces paramètres précisent d’une part l’url à interroger, la seconde que tu ne veux pas modifier l’entête http (ce qui est le bon comportement par défaut, tu veux faire un query simple, et enfin le dernier que tu veux récupérer une chaine de caractère comme résultat et pas afficher la page sur la console :slight_smile:

ce sont des commandes php relativement standard, le bloc à la fin déclenche l’appel de la page et récupère le code réponse dans la variable status.
la chaine de résultat sera dans data.

https://www.php.net/manual/en/function.curl-setopt.php

1 J'aime

Merci pour ta reponse. Je file voir le lien.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.