Bonsoir à tous,
Je voudrais poser une petite question, est-ce que quelqu'un connait un widget météo à intégrer sur un site web, la subtilité serai de pouvoir gérer la météo en fonction de la position géographique de l'utilisateur (Adresse ip..).
La plupart de ceux proposé sur internet ne comporte pas cette fonctionnalité mais juste une ville à choisir lors de l'implantation du script, je pourrais faire la liason via cURL mais je ne sais pas si j'ai le droit et puis si il en existe un tout prêt, je suis preneur !
Merci d'avance,
Avec ce bout de code tu peux bien voir comment est structuré le tableau:
<?php
$query = 'Paris';
$json = json_decode(file_get_contents('http://query.yahooapis.com/v1/public/yql?format=json&q=select%20*%20from%20geo.placefinder%20where%20text%3D%22'.$query.'%22'), true);
?>
<pre><?php print_r($json); ?></pre>
Ici pour récupérer le WOEID tu as juste à prendre $json[query][results][Result][woeid], si il y a plusieurs villes du même nom, ça sera $json[query][results][Result][0][woeid] ou [1]... selon la ville que tu choisis.
Et ici un bout de code pour avoir les informations sur trois jours.
<?php
$query = 'Paris';
$json = json_decode(file_get_contents('http://query.yahooapis.com/v1/public/yql?format=json&q=select%20*%20from%20geo.placefinder%20where%20text%3D%22'.$query.'%22'), true);
$weather_feed = file_get_contents('http://weather.yahooapis.com/forecastrss?u=c&w='.$json[query][results][Result][woeid]);
if(!$weather_feed) die('weather failed, check feed URL');
$weather = simplexml_load_string($weather_feed);
$channel_yweather = $weather->channel->children("http://xml.weather.yahoo.com/ns/rss/1.0");
$item_yweather = $weather->channel->item->children("http://xml.weather.yahoo.com/ns/rss/1.0");
foreach($item_yweather as $x => $yw_item) {
foreach($yw_item->attributes() as $k => $attr) {
if($k == 'day') $day = $attr;
if($x == 'forecast') { $yw_forecast$x]$day . '']$k] = $attr; }
else { $yw_forecast$x]$k] = $attr; }
}
}
?>
<pre><?php print_r($yw_forecast); ?></pre>
Juste pour savoir, comment tu fais pour récupérer la localisation de la personne avec son IP.
Il y a l'API de Yahoo!. Tu peux récupérer les données grâce à leur flux XML, comme ici Paris: [url=http://weather.yahooapis.com/forecastrss?u=c&w=615702]http://weather.yahooapis.com/forecastrss?u=c&w=615702[/url] La documentation: [url=http://developer.yahoo.com/weather/#response][/url] [url=http://developer.yahoo.com/weather/#response]http://developer.yahoo.com/weather/#response[/url] Le paramètre u correspond à la température (c pour Celsius, f pour Fahrenheit) et le paramètre w et le WOEID de la ville que tu cherches, pour Paris c'est 615702. Pour avoir le WOEID soit avec le nom, les coordonnées... Ici la documentation pour avoir les méthodes: [url=http://developer.yahoo.com/boss/geo/docs/free\_YQL.html#table\_pf]http://developer.yahoo.com/boss/geo/docs/free\_YQL.html#table\_pf[/url] Et là, la console de test: [url=http://developer.yahoo.com/yql/console/?q=select%20\*%20from%20geo.placefinder%20where%20text=%22Paris%22]http://developer.yahoo.com/yql/console/?q=select%20\*%20from%20geo.placefinder%20where%20text=%22Paris%22[/url] Enfin la requête totale: [url=http://query.yahooapis.com/v1/public/yql?q=select%20\*%20from%20geo.placefinder%20where%20text%3D%22Paris%22&diagnostics=true]http://query.yahooapis.com/v1/public/yql?q=select%20\*%20from%20geo.placefinder%20where%20text%3D%22Paris%22&diagnostics=true[/url]
Je n'arrive pas vraiment à l'utiliser, enfin recuperer les infos et les retransmettre ça va mais, j'ai l'impression qu'on ne peut pas vraiment effectuer l'affichage que l'on veut où alors je m'y prends très mal !
Tu récupères les infos comment? Avec la fonction SimpleXML ou en DOM, pour le WOEID tu peux avoir en JSON, ce qui est plus rapide à récupérer, vu qu'en une ligne tu as tout dans un tableau.
Bah j'ai essayé avec le JSON mais en fait je n'arrive pas à naviguer dans le tableau même avec un json_decode, il y a peut être une technique spéciale..
Merci beaucoup c'est exactement ça ! Pour la géolocalisation j'essayais de me debrouiller avec des API bizarres mais puisque j'enregistre dans les informations la ville de mon visiteur, je n'en ai plus besoin, en tout cas, merci c'est parfait ! ;)
Bonjour,
Moi qui utilisait ce petit plugin widget météo : http://www.my-meteo.fr/meteo+webmaster.html
J'ai environs 250 villes sur mon site (cela évoluer par la suite), et j'ai du générer manuellement 250 codes html depuis ce site...
Si j'avais su que ce genre d'API existait :D
Je l'utilise depuis quelques jours et c'est assez pratique. Bon par contre c'est en anglais. Quelqu'un à une version française ?
Sandrine