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으로 설정하고 있습니다.

할 수 있었다!



좋은 웹페이지 즐겨찾기