以前、開発してたお天気アプリが調子悪いな~っと思ってたら、いつの間にかサービスが終了してました
Googleが提供しているAPIだから、まさか使えなくなるとは思ってなかったのですがやられました
参考ページにはRubyしかなかったのでPHPとjsで
お天気を取得するサンプルを作ったのでブログっておきま~す
お天気を取得するサンプルを作ったのでブログっておきま~す
代替はWunderground Weather APIです
使い方手順
(1)まずはWunderground Weather APIの開発者登録をします。
1分間に10リクエスト、一日で500リクエストまでは無料らしい
1分間に10リクエスト、一日で500リクエストまでは無料らしい
(2)登録が完了するとメールがくるので、メールのURLにアクセスすると
API Keyが取得できます
(3)以下のソースを自分のサーバに置きます。
[gettenki.php]
?php $url = "http://api.wunderground.com/api/APIキー/conditions/lang:JP/q/Japan/".$_GET['file'].".json"; $json = file_get_contents($url,true); if ($json == false) { echo "API取得失敗っ!"; return; } $json = mb_convert_encoding($json,"UTF-8","auto"); echo $json; ?
[index.html]
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<style type="text/css">
li{list-style-type: none; }
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
</script>
<script type="text/javascript">
function getTenki(){
//ラジオボタンの値取得
var cities = document.getElementsByName("q1");
var city = "";
for(var i=0;i<3;i++){
if(cities[i].checked){
city = cities[i].value;
}
}
$(function(){
$.ajax({
url:"gettenki.php?file="+city+".json",
async: true,
cache: false,
type: "get",
dataType:'json',
success: function(res){
$("#tenki").empty();
$("#tenki").append("<li><img src='" + res.current_observation.image.url + "'></li>");
$("#tenki").append("<li>都市名:" + res.current_observation.display_location.city + "</li>");
$("#tenki").append("<li>天気:" + res.current_observation.weather + "</li>");
$("#tenki").append("<li>湿度:" + res.current_observation.relative_humidity + "</li>");
$("#tenki").append("<li>気温:" + res.current_observation.temp_c + "</li>");
$("#tenki").append("<li><img src='" + res.current_observation.icon_url + "'></li>");
},
error:function(){console.log('Miss..');}
});
});
}
</script>
<title>天気サンプル</title>
</head>
<body>
<input type="radio" name="q1" value="Tokyo" checked>東京
<input type="radio" name="q1" value="Chiba" />千葉
<input type="radio" name="q1" value="Yokohama" />横浜
<br>
<button onclick="getTenki()">天気取得!</button>
<div id="tenki">ここに天気を表示するよ</div>
</body>