SlackBot에서 기차 운행 정보를 슬래시 명령으로 알립니다.

지난번 SlackBot에서 기차 운행 정보를 알립니다. 에서 구현한 bot를 개수하겠습니다.

개요



슬래시 커맨드를 사용하여 커맨드를 친 타이밍의 운행 정보를 통지한다.

절차



1. 우선 실장



TrainInfo.gs
var slackAccessToken = PropertiesService.getScriptProperties().getProperty('SlackAccessToken');

function doPost(e) {
  var slackApp = SlackApp.create(slackAccessToken);
  // 対象チャンネル
  var channelId = "#_info_train";
  var options = {
    // 投稿するユーザーの名前
    username: "TrainInfo",
    icon_emoji: ":train:",
  }

  //電車遅延情報をJSON形式で取得
  var json = JSON.parse(UrlFetchApp.fetch("https://rti-giken.jp/fhc/api/train_tetsudo/delay.json").getContentText());

  var name="名古屋本線";
  var company="名古屋鉄道";

  // 投稿するメッセージ
  var currentDate = new Date();
  var date = Utilities.formatDate( currentDate, 'Asia/Tokyo', 'M月d日 HH時mm分');
  var message = "◆電車遅延情報 (" + date + "現在)\n 電車遅延情報はありません。";

  for each(var obj in json){

    if(obj.name === name && obj.company === company){ 

      message ="<@U8U7H4KE0|yuina> \n ◆電車遅延情報 (" + date + "現在)\n" + company + name + "が遅延しています。\n詳細はこちら→ http://top.meitetsu.co.jp/em/";

    }
  }

  var res = {"text": message};
  return ContentService.createTextOutput(JSON.stringify(res)).setMimeType(ContentService.MimeType.JSON);
}

이전과 같은 소스를 기반으로 토큰 관련 및 return을 변경하고 있습니다.
나중에 POST를 받고 처리하기 위해 함수를 doPost로 변경했습니다.

2.GAS의 공개 설정





공개 → 웹 애플리케이션으로 도입



웹 애플리케이션으로 게시하고 URL을 복사해 둡니다.
이 후 slackApp 설정에서 사용합니다.

3.SlackApp 설정



마지막으로 만든 slackapp에서 슬래시 명령을 사용할 수 있도록 설정합니다.



Slash Commands에서 Create New Command를 클릭합니다.



Command와 RequestURL을 입력.
RequestURL은 방금 복사한 URL을 입력.

완제품


/traininfo_now 보내면 ...



라는 느낌으로 내주게 되었습니다.

좋은 웹페이지 즐겨찾기