Saludos amigos:
En este link:
http://www.myweather2.com/developer/apis.aspx?uref=becda844-8299-4bf6-899b-d771a92b9dbf
pueden encontrar un Web Service gratuito para obtener el estado del tiempo en su localidad y así poderlo incluir en alguna aplicación de VFP.
1- Primero deben registrarse (los datos requeridos son ínfimos).
2- Una vez hayan hecho Log-In con su cuenta, vayan a "My Account" y allí encontrarán varias pestañas. En la última (
Developer Zone), encontrarán su número UAC (Clave Unica de Activación) que DEBEN incluir en el GET del Web Service a consumir.
3- Deben conocer las coordenadas geográficas de la localidad sobre la cual desean saber el clima (Latitud y Longitud). Si ustedes no conocen las coordenadas geograficas, búsquenlas con Google Earth o cualquier otra utlidad que puedan encontrarn en la Web.
4- El código de VFP que pueden usar para consumir el Servicio Web y obtener un XML con los resultados puede ser el siguiente:
oHora=CREATEOBJECT("msxml2.xmlhttp")
oHora.OPEN("GET","http://www.myweather2.com/developer/forecast.ashx?uac=<tú número UAC>&query=14.62,56.32&temp_unit=c",.F.)
oHora.SEND(.NULL.)
M.Respuesta = oHora.ResponseText
? M.RespuestaDonde:
a.) Donde dice
<tú número UAC> debe ser sustituído por tu número UAC que obtuviste luego de haberte registrado (ver paso 2 de mas arriba). El número va "pelado", sin los signos <>
b) Donde yo puse 14.62,56.32 debes poner la Latitud y Longitud de la localidad sobre la cual deseas saber el clima. En mi caso, esta es la Latitud y Longitud de la Ciudad de Guatemala.
c) La respuesta en formato XML yo la grabo en la variable de memoria M.Respuesta, de donde puedo extraer los datos climáticos que deseo mediante las funciones STREXTRACT.
CONSIDERACION IMPORTANTE:
Solo podrás hacer 500 consultas por usuario o número UAC al día. En mi caso eso esta de sobra ya que mi aplicación mediante un control TIMER chequea el clima cada 20 minutos. Por lo que en 12 horas de trabajo, solo hago 36 consultas (de las 500 a las que tengo derecho).
Tal vez a alguien le sea de utlidad esta API.
Salu2,
Edgar Acevedo.