GoogleAppsScript로 서버가 필요없는 SlackBot 만들기 (후편)

소개



Google AppScript로 서버가 필요없는 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;
}

예로서 도쿄의 날씨를 얻고 있습니다.
오늘 날씨와 날씨 아이콘, 최저/최고 기온, 날씨 개황문을 표시하도록 했습니다.
다음날 날씨는 내일 날씨와 날씨 아이콘, 최저/최고 기온 표시

마무리




트리거를 설정하여 원하는 시간에 메시지를 보냅니다.
이미지의 원형 표시 버튼을 눌러 TodayWeatherMessage 및 YesterdayWeatherMessage 트리거를 추가합니다.

참고로, 우치보타는 오늘의 날씨는 5:30, 내일의 날씨는 19:30으로 설정하고 있습니다.

할 수 있었다!



좋은 웹페이지 즐겨찾기