APIを使って、天気予報 を Google Home に伝えてもらうようにしてみる

その日の天気予報を朝に Google Home Mini で、知らせてくれる機能を作ってみました。

↓お天気のデータは、「OpenWeatherMap」のAPIから取得します。

↓こちらのサイトを参考にしてデータを取得しました。

↓こちらから、都市のIDを探します。

http://bulk.openweathermap.org/sample/city.list.json.gz

Google Apps Script を使ってデータを取得します。

var app_id = "XXXXXXXXXXXXXXXXXX";
var city_id = "11111111"; //都市のID
var tenkiArr = {"clear":"晴れ","clouds":"くもり","rain":"雨","thunderstorm":"雷雨"
                ,"snow":"雪","mist":"霧"};

var nowDate_y = nowDate.getYear();
var nowDate_m = ("0" + (nowDate.getMonth()+1)).slice(-2);
var nowDate_d = ("0" + nowDate.getDate()).slice(-2);

var response = UrlFetchApp.fetch("http://api.openweathermap.org/data/2.5/forecast?id=" + city_id + "&units=metric&appid=" + app_id);
var json = JSON.parse(response.getContentText());
var listArr = json["list"];

for (var i = 0; i < listArr.length ; i++){
     var dt_txt = listArr[i]["dt_txt"]; // 例:2018-06-11

    if(nowDate_y + "-" + nowDate_m + "-" + nowDate_d == dt_txt.substr(0,10)){ // 今日のデータ
    }else{
      continue;
    }

     var main = listArr[i]["weather"][0]["main"].toLowerCase(); // 例:clear、rain、clouds
     Logger.log(tenkiArr[main]); // 例:晴れ、雨、くもり
}

↓あとは、こちらを参考にして、メッセージをGoogle Home に投げます。

朝7時にセットして、Google Home に、

「本日のお天気をお知らせします。朝のお天気は雨、昼のお天気は曇り、夜のお天気は晴れです。

というような感じで、伝えてもらうようにしました。