Luego de mucho investigar, decidí usar el RSS de Yahoo! Weather para tal propósito.
Asi que manos a la obra...
Como pueden ver en la documentación, a la url del RSS hay que enviarle 2 parámetros:
p: Id de la localización de la cual se quiere obtener el clima. (Para el caso de Buenos Aires, ésta sería 'ARBA0009')
u: Unidad de temperatura a emplear (c = Celcius, f = Farenheit).
Entonces la url a consumir en mi caso sería:
http://weather.yahooapis.com/forecastrss?p=ARBA0009&u=c
Ahora bien, para leer el contenido del rss nos alcanza y sobra con:
$rss = file_get_contents ('http://weather.yahooapis.com/forecastrss?p=ARBA0009&u=c');
Con esa línea obtenemos un string con todo el contenido del RSS.
Ese string lo podemos consumir desde SimpleXML fácilmente de la siguiente manera:
$yWeather = simplexml_load_string($rss);
Y una vez que tenemos el objeto $yWeather cargado, procedemos a mostrar el estado del tiempo en el navegador de la siguiente manera:
echo $yWeather->channel->item->description;
Y eso es todo, el mismo RSS contiene en el campo 'description' un bloque CDATA con el código HTML del estado del tiempo, con imagen incluída y todo.
Entonces el programa entero que muestra las condiciones actuales del clima serían esas 3 líneas de código:
<?php
$rss = file_get_contents ('http://weather.yahooapis.com/forecastrss?p=ARBA0009&u=c');
$yWeather = simplexml_load_string($rss);
echo $yWeather->channel->item->description;
?>
Quien dijo que PHP es complicado?
En la proxima nota veremos cómo leer especificamente el código de estado del tiempo y otra información disponbible en el XML para poder mostrar un contenido personalizado para el clima actual.
0 comentarios:
Publicar un comentario en la entrada