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 に投げます。

http://www.nanigoto.net/entry/2017/12/25/160532

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

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

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