【GAS】Google Apps Scriptで天気予報APIを取得し、LINEに自動通知する方法

はじめに

毎朝「今日の天気」を調べるのは、通勤・通学や業務の準備に欠かせない作業です。
しかし、わざわざ天気アプリを開いたり検索するのは少し面倒。

そこで本記事では、Google Apps Script(GAS)で天気予報APIを取得し、LINEに自動通知する仕組みを構築します。
スマホに直接届くので、より効率的に天気を確認できます。

天気予報APIと利用制限について

利用するのは「OpenWeatherMap API」です。
無料プランでも十分に使えますが、以下の制限があります。

  • 最大60リクエスト/分(無料プラン)
  • 取得できるのは「現在の天気」と「5日間・3時間ごとの予報」まで
  • 商用利用や大量アクセスには有料プランが必要

日次通知であれば無料プランで問題ありません。

APIリクエスト例:

https://api.openweathermap.org/data/2.5/weather?q=Tokyo&appid=YOUR_API_KEY&units=metric&lang=ja

GASで天気予報を取得するコード例

まずは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 Notifyを利用してメッセージ送信

次に、取得した天気情報を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時に実行」などを設定します。

  1. スクリプトエディタで「トリガー」メニューを開く
  2. notifyWeather 関数を選択
  3. 時間主導型 → 日付ベース → 午前7時 を指定

これで毎朝、自動的に天気がLINEに送信されます。

おわりに

本記事では、Google Apps Scriptを使って天気予報APIを取得し、LINEに自動通知する仕組みを紹介しました。
通勤・通学の準備やチームでの業務効率化に役立ちます。

応用すれば「週間予報」「傘が必要かどうかの判定」なども実装可能です。

また、APIの仕様変更やうまく動作しないなどがありましたら、遠慮なくコメントまでお寄せください!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です