Google Weather API終了!? | とあるプログラマーのブログ

とあるプログラマーのブログ

Unityやblender、Live2Dについて書いていきます!

以前、開発してたお天気アプリが調子悪いな~っと思ってたら、いつの間にかサービスが終了してました

Googleが提供しているAPIだから、まさか使えなくなるとは思ってなかったのですがやられました



参考ページにはRubyしかなかったのでPHPとjsで
お天気を取得するサンプルを作ったのでブログっておきま~す

代替はWunderground Weather APIです


使い方手順
(1)まずはWunderground Weather APIの開発者登録をします。
   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>
</html>


ポイントとしては、jsonファイルが地域ごとに分かれています。
例えば、Tokyo.json、Chiba.jsonなど。

日本語サイトもあるので、該当地域がどのローマ字表記か確認すると良いです
Wunderground Weather日本語サイト


一応、DEMOページつけておきます DEMO

このページを実行した結果がこんな感じになります