2015年6月8日月曜日

Google Apps Script[GAS]で天気情報取得

天気情報取得は公開されているAPIを使用します。
まずどこのAPIを使うのかを決めます。
無料かつJSON(P)で取得可能なところを探しました。
使用する場合はライセンスは各自で調べてください
  • OpenWeatherMap OpenWeatherMap
    POINT 概況や降水確率がないが緯度経度で取得可能、海外でも取得可能なのが良い。緯度経度の有効桁は少数2桁まで。
    JSONが変にまとめられていて個人的に凄い微妙に感じる

  • weather_hacks weather_hacks(LiveDoor)
    POINT 緯度経度での情報や降水確率はないが概況やアイコンがこの中では良い。
    データの中に「今日」等があり、気が利いてる

  • OpenWeatherMap drk7jp
    POINT 緯度経度での取得はないが、降水確率があるのは大変ありがたい

  • 他にも・・・
    YahooはアプリケーションIDが必要。情報が微妙だった気がします。
    MSNはなくなってたり降水確率などもあったようです。(まだ使用可能そうですが、てかJSONではないです)
    好みのやつを選択すればいいと思いますが、複数サイトからの取得もありかと思います。

    以下はGoogle Apps Scriptのサーバサイドでの取得方法です
    することはほぼ同じですね~
        //units=metricで華氏から摂氏へ変更
        var url = "api.openweathermap.org/data/2.5/weather?units=metric&q=Tokyo,jp";
        result = UrlFetchApp.fetch(url);
        var retw = result.getContentText();
        var retjson = JSON.parse(retw);
        Logger.log(jsonresult.weather);
      
        var url = "http://weather.livedoor.com/forecast/webservice/json/v1?city=400040";
        result = UrlFetchApp.fetch(url);
        var retw = result.getContentText();
        var retjson = JSON.parse(retw);
        Logger.log(jsonresult.forecasts[0].telop);
      
        var url="http://www.drk7.jp/weather/json/23.js";
        result = UrlFetchApp.fetch(url);
        var retw = result.getContentText();
        //余分なものを除去してから
        retw = retw.replace(/drk7jpweather.callback\(/g,"");
        retw = retw.replace(/\);/,"");
        var jsonresult = JSON.parse(retw);
        Logger.log(jsonresult.pref.area.南部.info[0].weather);
      
    以上です。
    あとはガジェットにしたり、定時にメールしたり、つぶやいたりも可能かと思います。

    0 件のコメント: