1
1

GASを使って天気予報を取得してDiscordに送信する

Posted at

今回もまたWebHookを使います。前の記事でWebHookのURLの取得方法があるので取得しておいてください。

はじめに

この前試しにGASを試しに使ってみました。
使ってみた感じはJavascriptに似た(というかそもそもGASがJavascirptベースなので似てる)ものでJavascriptを触ったことがある人は簡単に扱えそうなものでした。
なので天気予報をDiscordに送信するプログラムを書いてみた。

準備

Googleアカウントが必要です。事前にログインしておいてください。
まず、Google Apps Scirptにアクセスします。
アクセスしたら新しいプロジェクトを作成を押したら準備完了です。

とりあえずコードを書く

次にコードを書いていきます。

index.gs
function todaysendWeather(){

// UrlFetchAppのURLのcityの後ろはhttps://weather.tsukumijima.net/primary_area.xmlのエリアコードに書き換えてください。
// 今入れているのは札幌市のエリアコードです。
const response = UrlFetchApp.fetch("https://weather.tsukumijima.net/api/forecast/city/016010");
const json = JSON.parse(response.getContentText());
publishof = json["publishingOffice"] + "\n";
city = json["location"]["city"] + "の天気\n"
date = json["forecasts"][0]["date"].replace(/-/g,"/"); 
weather = json["forecasts"][0]["telop"] + "\n  ";
maxtemp = json["forecasts"][0]["temperature"]["max"]["celsius"] + "" + "\n"; 
rainpar = "0時~6時:" + json["forecasts"][0]["chanceOfRain"]["T00_06"] + " 6~12時:" + json["forecasts"][0]["chanceOfRain"]["T06_12"] + " 12~18時:" + json["forecasts"][0]["chanceOfRain"]["T12_18"] + " 18~24時:" + json["forecasts"][0]["chanceOfRain"]["T18_24"] + "\n";

const WEBHOOK_URL = "YOUR_WEBHOOK_URL"; //取得したWebhookURLを追加

  const payload = {
    username: "天気予報Bot",
    embeds: [
      {
        // 本文
        "title": city, 
        fields: [
          {
            "name": "発表者",
            "value": publishof,
          },
          {
            "name": "日付",
            "value": date,
          },
          {
            "name": "天候",
            "value": weather,
          },
          {
            "name": "最高気温",
            "value": maxtemp,
          },
          {
            "name": "降水確率",
            "value": rainpar,
          }
        ],
          "footer": {
          "text": "お好みで設定してください"
        }
      }
    ],
  }
  UrlFetchApp.fetch(WEBHOOK_URL, {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(payload),
  });
}

このコードは天気予報APIを使用して天気予報を取得して、取得した天気予報の情報を埋め込みとしてWebHookで送信するやつです。
このAPIは今日、明日、明後日まで情報を取得できるのでトリガーで朝の7~8時に今日の天気を送信、夜の7~8時に明日の天気、というふうにできます。

おわりにを書こうと思ったけど何書くか思いつかなかったので、とりあえずこれで終わります。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1