某サイトに、天気予報としてworldweatheronlineのAPIつこうてみる。

↑こんなん感じ
他にもAPIを数種類つかってるけど、認証関係や返される形式の都合でPHPに処理してもらってた。
今回は特に障害もなさげだったので定番(らしい)のjquery(ajax)でjson処理することに。
使ったのはhttp://www.worldweatheronline.com/
無料だったのと、リファレンス関係あったからなんとなく。
ドキュメントはhttp://developer.worldweatheronline.com/documentation
あたりご確認願います。
で、以下みたいなので動いたり。
$.ajax({
url: "http://api.worldweatheronline.com/free/v1/weather.ashx?q=緯度経度とか&format=json&num_of_days=日数&key=取得したキー",
dataType: 'jsonp',//データはjsonpだよ
timeout : 2000,//タイムアウトを2秒に設定
}).done(function(data) {
$("#weather img").css("display","none");//ローディング消す
$.each(data.data.weather, function(i,val) {
$("<div/>")
.append((val.date).slice(-2) + "日")
.append("<br/>")
.append($("<img/>").attr("src", val.weatherIconUrl[0].value))
.append("<br/>")
.append("<span class='max'>" + val.tempMaxC + "℃</span>")
.append("<br/>")
.append("<span class='min'>" + val.tempMinC + "℃</span>")
.appendTo("#weather");
});
}).fail(function() {
$("#weather").html("チョットお休みかも…");
});
簡単な流れとしては…
個別に設定してる緯度経度とかAPIキーを、ajaxのurlオプションで渡す
↓
done(successとかもOK)で成功時の処理を、
fail(errorとかもOK)で失敗時の処理をってーことみたい。
↓
eachで個数回す的な。
返ってきてるデータをCSSで整形して表示。
画像返すのあったから天気マーク作らず済んだった
たまーに503でるけど放置w
いろいろ怪しいとこもあると思うので、もし参考にされる場合は「ご利用は計画的に」って奴です。
[amazonjs asin=”4627847327″ locale=”JP” tmpl=”Small” title=”Webアプリケーション構築入門(第2版) – 実践! Webページ制作からマッシュアップまで”]