毎朝「今日の天気」を調べるのは、通勤・通学や業務の準備に欠かせない作業です。
しかし、わざわざ天気アプリを開いたり検索するのは少し面倒。
そこで本記事では、Google Apps Script(GAS)で天気予報APIを取得し、LINEに自動通知する仕組みを構築します。
スマホに直接届くので、より効率的に天気を確認できます。
利用するのは「OpenWeatherMap API」です。
無料プランでも十分に使えますが、以下の制限があります。
- 最大60リクエスト/分(無料プラン)
- 取得できるのは「現在の天気」と「5日間・3時間ごとの予報」まで
- 商用利用や大量アクセスには有料プランが必要
日次通知であれば無料プランで問題ありません。
APIリクエスト例:
https://api.openweathermap.org/data/2.5/weather?q=Tokyo&appid=YOUR_API_KEY&units=metric&lang=ja
まずはAPIから天気データを取得する基本コードです。
function getWeather() {
var apiKey = "YOUR_API_KEY";
var city = "Tokyo";
var url = "https://api.openweathermap.org/data/2.5/weather?q="
+ city + "&appid=" + apiKey + "&units=metric&lang=ja";
var response = UrlFetchApp.fetch(url);
var data = JSON.parse(response.getContentText());
var message = "今日の天気 (" + data.name + ")\n" +
"状況: " + data.weather[0].description + "\n" +
"気温: " + data.main.temp + "℃\n" +
"湿度: " + data.main.humidity + "%";
return message;
}
次に、取得した天気情報をLINEに送信します。
事前に「LINE Notify」からトークンを発行してください。
function sendLineNotify(message) {
var token = "YOUR_LINE_TOKEN";
var options = {
"method": "post",
"payload": {
"message": message
},
"headers": {
"Authorization": "Bearer " + token
}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
function notifyWeather() {
var weatherMessage = getWeather();
sendLineNotify(weatherMessage);
}
これで notifyWeather()
を実行すると、LINEにメッセージが届きます。
最後に、GASのトリガー機能で「毎朝7時に実行」などを設定します。
- スクリプトエディタで「トリガー」メニューを開く
notifyWeather
関数を選択- 時間主導型 → 日付ベース → 午前7時 を指定
これで毎朝、自動的に天気がLINEに送信されます。
本記事では、Google Apps Scriptを使って天気予報APIを取得し、LINEに自動通知する仕組みを紹介しました。
通勤・通学の準備やチームでの業務効率化に役立ちます。
応用すれば「週間予報」「傘が必要かどうかの判定」なども実装可能です。
また、APIの仕様変更やうまく動作しないなどがありましたら、遠慮なくコメントまでお寄せください!