3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GoogleAppsScriptでサーバー要らずのSlackBotを作る(後編)

Posted at

#はじめに
GoogleAppScriptでサーバー要らずのSlackBotを作る(前編)」からの続きになります。
後編では、前編で作成したbotに天気予報を通知する機能を追加していきます

#天気予報API
無料で使え、ユーザー登録などの手間がかからないということで
Livedoor Weather Web Service を使うことにしました

http://weather.livedoor.com/forecast/webservice/json/v1?city=+地域のID
でアクセスできます。地域IDはAPI公式サイトから見ることができるので探してみてください

#GASを書いていく

WeatherNotification.gs
//初期化
var weatgerResponse = UrlFetchApp.fetch("http://weather.livedoor.com/forecast/webservice/json/v1?city=130010");
var weatherJson = JSON.parse(weatgerResponse.getContentText());

//今日の天気
function TodayWeatherMessage()
{
  var message;
  message = ":sunny: 今日の天気は *"+weatherJson["forecasts"][0]["telop"]+"* にゃ\n";
  message += weatherJson["forecasts"][0]["image"]["url"]+"\n";
  if(zeroIfNull(weatherJson["forecasts"][0]["temperature"]["max"]))message += "最高気温:"+weatherJson["forecasts"][0]["temperature"]["max"]["celsius"]+"℃\n";
  if(zeroIfNull(weatherJson["forecasts"][0]["temperature"]["min"]))message += "最低気温:"+weatherJson["forecasts"][0]["temperature"]["min"]["celsius"]+"℃\n";
  message +="```\n";
  message +=weatherJson["description"]["text"]+"\n";
  message +="```\n";
  
  PostMessage("general",message);
}

//明日の天気
function YesterdayWeatherMessage()
{
  var message;
  message = ":sunny: 明日の天気は *"+weatherJson["forecasts"][1]["telop"]+"* にゃ\n";
  message += weatherJson["forecasts"][1]["image"]["url"]+"\n";
  if(zeroIfNull(weatherJson["forecasts"][1]["temperature"]["max"]))message += "最高気温:"+weatherJson["forecasts"][1]["temperature"]["max"]["celsius"]+"℃\n";
  if(zeroIfNull(weatherJson["forecasts"][1]["temperature"]["min"]))message += "最低気温:"+weatherJson["forecasts"][1]["temperature"]["min"]["celsius"]+"℃\n";
  
  PostMessage("general",message);
}

//nullチェックをする関数
function zeroIfNull(a) {
  return a === '' ? 0 : a;
}

例として東京の天気を取得しています。
今日の天気と天気アイコン、最低/最高気温、天気概況文を表示するようにしました。
次の日の天気は明日の天気と天気アイコン、最低/最高気温を表示します

#仕上げ
スクリーンショット 2019-04-25 午後1.22.26.png
トリガーを設定してお好みの時間にメッセージを送信するようにします。
画像の丸印のボタンを押して、TodayWeatherMessageとYesterdayWeatherMessageのトリガーを追加します。

参考までに、うちのbot子は今日の天気は5:30、明日の天気は19:30に設定しています。

#出来た!
スクリーンショット 2019-04-25 午後1.34.32.png

3
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?