/ / Prévisions météo de WOEID (avec YQL ou RSS) en javascript? - javascript, jquery, yql, météo, yahoo-api

Prévisions météo de WOEID (avec YQL ou RSS) en javascript? - javascript, jquery, yql, météo, yahoo-api

Existe-t-il un moyen d'obtenir les prévisions météorologiques de woeid en javascript?

J'ai essayé d'utiliser le flux RSS de Yahoo, mais je ne pouvais pas le faire fonctionner. Voici mon code

    var url = "http://weather.yahooapis.com/forecastrss?w=" + encodeURIComponent("WOEID here");

$.ajax({
url: url,
dataType: "jsonp",
jsonpCallback: function(data) { console.log(data); },
success: function(data) { alert("success"); }
});

Aucune suggestion?

Réponses:

2 pour la réponse № 1

Voici le moyen le plus simple d’obtenir les informations souhaitées à l’aide de jQuery et YQL:

var woeid = "26355493";

var $url = "http://query.yahooapis.com/v1/public/yql?callback=?";

$.getJSON($url, {
q: "select * from xml where url=" +
""http://weather.yahooapis.com/forecastrss?w=" + woeid + """,
format: "json"
}, function (data) {
console.log(data.query.results.rss.channel);
}
);​

La requête dans la console YQL ...

Le code JavaScript dans jsfiddle ...


1 pour la réponse № 2

Apparemment, l’API météo renvoie ses résultats en RSS format, alors que votre fonction les attend dans jsonp format. Pensez à utiliser Yahoo! Les pipes aller chercher le temps RSS nourrir pour vous, le traiter et le retourner dans jsonp format.

Voici un tuyau qui fait quelque chose de similaire:

http://pipes.yahoo.com/pipes/pipe.info?_id=4d160cd8ed9d6d78164213928a51507d


0 pour la réponse № 3

Comme suggéré par dragon, j'ai créé un tuyau Yahoo - voici mon code complet; L'URL dans le code est le tuyau Yahoo que j'ai créé.

$(function(){
var url = "http://pipes.yahoo.com/pipes/pipe.run?_id=e33143abd20b19a0173b3a4b479fa4d3&_render=json&w=YOURWOEIDHERE";

function createRequest() {
try { return new XMLHttpRequest(); } catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
return null;
}
var request = createRequest();
request.open("GET", url, true);
request.onreadystatechange = callback;
request.send(null);

function callback() {
if(request.readyState != 4) { return }
Obj = $.parseJSON(request.responseText);
console.log(Obj);
}
});

références:
Pipe Yahoo: http://pipes.yahoo.com/pipes/pipe.info?_id=e33143abd20b19a0173b3a4b479fa4d3
jQuery 1.5 - étiquette invalide d'erreur JSON