본문 바로가기

Coding Series/[완결] FBM ChatBot

FBM ChatBot [4] - 현재 시간 알려주는 JavaScript ChatBot 만들기

728x90
반응형

FaceBook Messenger ChatBot 개발을 위해 찾아왔지만, 이 글을 처음 보는 것이라면 첫 글부터 보고 오는 것을 추천한다. 처음 시작하는 것인데 첫 글이 아닌 이 글부터 본다면 이해하기 벅찰 수 있다. 첫 글부터 보기를 매우 추천한다. 첫 글부터 보면서 차근차근 따라오기(클릭)

할 일 두 줄 정리 (정리만 보고 따라하기엔 무리가 있을 수 있다. 본문을 읽으며 차근차근 따라하기를 추천한다.)
1. JavaScript를 이용하여 현재 시간을 불러오고 원하는 타입으로 변경하여 활용한다.
2. 1번에서 활용 준비를 마친 현재 시간을 ChatBot을 통해 적극 활용하여 답장을 보낸다.

저번 글에서는 ChatBot으로 답장을 보내는 것을 해보았다. 오늘은 전 글의 활용 편이다.

전 글을 보지 못했다면 이번 글은 이해조차 어려우니, 코딩을 잘하더라도 이전 글은 꼭 보고 와야 한다. 이전 글(클릭)

오늘은 ChatBot을 활용하기보단, JavaScript를 활용한다고 보면 좋을 것 같다.

서론은 간단하게 하고, 바로 코딩으로 들어가 보자.

 

여기에서 주의사항이다. 저번 글에서 설명했다시피 ChatBot의 답장 관련된 코드는 모두 13번 줄 아래인, 14번 줄에 작성해야 한다.(function response 중괄호({}) 사이)

 

현재 시간을 불러오는 과정은 [현재 시간 함수 호출 -> 포맷 지정 -> 현재 시간 받아오기]로 구성된다.

 

복잡해 보일 수 있지만, 코드로 보면 매우 간단하다.

 

let today = new Date();
// 현재 시간 함수 호출
let yy = today.getFullYear();
// 년
let mm = today.getMonth() + 1;
// 월
let dd = today.getDay();
// 일
let hour = today.getHours();
// 시
let minute = today.getMinutes();
// 분
let second = roday.getSeconds();
// 초


매우 간단하다...

 

코드 설명은 각 코드 밑줄에 주석을 통해 작성해놓았으니 참고하기 바란다. 참고로 월의 경우, 0부터 1월로 받아오기 때문에 + 1을 해주어야 한다.

 

이제 이렇게 받아온 시간을 ChatBot이 답장하게 하면 된다.

 

하지만 이번엔 if문을 통하여 사용자가 어떠한 메시지를 보냈을 때만 답장하도록 할 것이다.

 

나는 [YYYY년 MM월 DD일 hh시 mm분 ss초]의 포맷으로 진행할 것이다.

 

우리는 위 코드처럼 하나하나 받아온 후 문자열 합치기를 통해 포맷을 구성할 것이다.

 

그 후 ChatBot에게 "시간"이라는 채팅(메시지)이 오면 현재 시간을 위 포맷(YYYY년 MM월 DD일 hh시 mm분 ss초)으로 답장하게 코드를 짤 것이다.

 

이곳에선 if문을 활용할 것이다. 아래 코드에서 답장하는 코드까지 모두 짜두겠다. 설명은 주석에 자세히 써두었다.

 

그리고 다시 한번 말하지만 저번 글에서 설명했다시피 ChatBot의 답장 관련된 코드는 모두 13번 줄 아래인, 14번 줄에 작성해야 한다.(function response 중괄호({}) 사이)

 

if(msg == "시간"){
// 만약 받은 메시지가 "시간"이라면 아래 코드를 실행한다.
  let today = new Date();
  // 현재 시간 함수 호출
  let yy = today.getFullYear();
  // 년
  let mm = today.getMonth() + 1;
  // 월
  let dd = today.getDay();
  // 일
  let hour = today.getHours();
  // 시
  let minute = today.getMinutes();
  // 분
  let second = roday.getSeconds();
  // 초
  let times = String(yy) + "년 " + String(mm) + "월 " + String(dd) + "일 " + String(hour) + "시 " + String(minute) + "분 " + String(second) + "초";
  // 년, 월, 일, 시, 분, 초 변수는 모두 int형(숫자형)으로 받아지기에 String() 함수를 이용하여 string(문자열형)으로 변경하여 + 기호로 합쳐준다.
  replier.reply(times);
  // 문자열 합치기를 한 times 변수를 답장으로 보낸다.
}

 

완성이다. 이제 FBM을 켜고 내가 코드를 짠 ChatBot 계정과는 다른 계정에서 내가 코드를 짠 ChatBot 계정에게 FBM 메시지를 통해 "시간"이라고 보내면 위에서 지정한 포맷대로 현재 시간을 ChatBot이 답장할 것이다.

 

이 글에도 남긴다. 문제가 있다면 언제든 편하게 연락해라. 댓글을 남겨도 되고, 불편하다면 kimain0401@kakao.com 으로 메일을 보내도 된다.

 

오늘도 어려운 코딩 배우고 ChatBot을 만드느라 수고했다.

 

다음 글에서는 모든 코드를 보여주고 코드들을 정리하며 FBM ChatBot Series를 마무리하려 한다.

 

다음 글까지 여러분이 마스터한다면, JavaScript를 공부하여 ChatBot 응용이 가능할 것으로 생각된다.

 

다음 글도 열심히 써두었으니 다음 글로 ChatBot 마스터를 향해 달려가자. 다음 글로 넘어와라.

728x90
반응형