안녕하세요
이번 포스팅은 카카오 플러스친구 챗봇에 대한 마지막 강좌입니다
지난 강좌에서는 첫 채팅시 보여줄 버튼들을 제공하는 기능을 구현하였습니다.
이번 포스팅에서는 상대방이 어떤 데이터를 전송하면 이에 맞는 응답을 하도록 구현해보겠습니다!
[1. API 문서 확인]
접속 URL은
http://서버주소/message
입니다
방식은 지난번과 다르게 GET 방식이 아니라 POST 방식입니다.
아래 파라미터를 보시면
user_key
type
content
3개의 데이터가 함께 전달된다고 합니다.
아래 예제와 같은 형식으로 서버에 전달됩니다.
전달받은 데이터를 가지고 적절하게 처리한 후 응답하는 형식에 대해서도 명시되어있습니다.
아래와 같은 형식으로 다시 응답하면 됩니다.
[2. POST 데이터를 위한 모듈 설치]
POST 방식으로 데이터를 전달받게되면 그냥 확인할 수 없습니다.
POST 데이터를 쉽게 읽고 사용할 수 있게하기위해 모듈을 하나 설치합시다.
프로젝트 폴더에 CMD를 열고
npm install body-parser --save
명령어를 입력하여 모듈을 설치합니다.
설치가 완료되었으면 기존 코드에서 사용해봅시다.
7~8행, 13~15행의 코드를 입력해줍니다.
13~15행은 express 서버에서 body-parser 라는 미들웨어를 사용하겠다고 설정하는 코드입니다.
[3. POST 데이터를 받을 라우트 생성]
API 문서에서
http://서버주소/message
경로로 데이터가 전달된다고 명시되어있습니다.
서버에서 위 주소에 대한 라우팅처리를 해줍니다.
30번째 행을보면 app.get() 이 아닌 app.post() 입니다.
경로는 /message 로 설정해줍니다.
32행은
req: 요청 객체
body: POST 데이터는 body에 포함되어 전달됩니다
content: API 문서에 content는 사용자가 입력한 데이터라고 명시되어있습니다.
하나로 이어서 설명하면 요청객체에서 사용자가 입력한 데이터를 꺼내는 부분입니다.
데이터를 msg 변수에 저장하는 코드입니다.
37행의 switch 문은
사용자가 데이터를 전송했을 때 상황에 맞는 처리를하기위해 작성하였습니다.
case 에는 각각의 처리할 항목들을 나열했습니다.
63행에서는 알맞는 send 데이터를 다시 사용자에게 JSON 타입으로 전달하는 코드입니다.
API 문서를 참고하여 간단히 추가해보았습니다.
API 문서의 형식처럼만 구성하면 됩니다.
소스코드를 저장하고 서버를 다시 껐다가 켜주면 위의 기능이 바로 반영됩니다.
카카오톡으로 테스트해보도록 합시다.
과일을 선택하거나 입력했을때의 응답입니다.
코드로 작성한것과 동일하게 응답하는 모습입니다.
채소를 입력하거나 버튼으로 선택했을때의 모습입니다.
잘 작동하네요!
정보를 선택했을때입니다.
메시지뿐만 아니라 다시 새로운 버튼이 출력됩니다.
위와같이 코드를 작성하여 전달한 결과입니다.
테스트2를 선택한 모습입니다.
switch문에서 "테스트2"에 대한 case를 구현하지 않았으므로 알 수 없는 명령이라고 출력됩니다.
이러한 방법으로 나만의 챗봇을 만들 수 있습니다!
이상으로 카카오톡 플러스친구 챗봇 만들기에 대한 강좌를 마치도록 하겠습니다.
감사합니다