투명한 기부를 하고싶다면 이 링크로 와보세요! 🥰 (클릭!)
바이낸스(₿) 수수료 평생 20% 할인받는 링크로 가입하기! 🔥 (클릭!)
이 글은
Node.js로 카카오톡 플러스 친구 봇 만들기 01 (https://wingnim.tistory.com/entry/Nodejs%EB%A1%9C-%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%ED%94%8C%EB%9F%AC%EC%8A%A4-%EC%B9%9C%EA%B5%AC-%EB%B4%87-%EB%A7%8C%EB%93%A4%EA%B8%B0-01)
에서 이어진다.
여튼 지난 글에서 우리는 카카오톡 플친을 만들었다.
이제 서버를 만들 차례다.
일단 적당한 프로젝트 폴더를 하나 만들고 해당 폴더에서 터미널 (다른말로는 cmd, powershell, 명령 프롬프트? 등이 있다) 을 실행시키자.
* 터미널 사용법을 잘 모르는 사람을 위해서 설명하자면, 윈도우 기준으로
1. 우선 폴더를 적당히 하나 만든다.
2. 폴더로 들어가서 Shift 버튼을 누른 상태로 마우스 오른쪽 클릭을 한다.
3. 원래는 그냥 새 폴더, 보기, 정렬기준 등의 옵션만 뜨던 창에 powershell 창 열기 혹은 여기에 cmd창 열기 같은 옵션이 뜰 것인데, 그것을 클릭하면 된다.
4. 안되면 끙끙 앓지 말고 현재 폴더에 터미널 여는 방법 (windows , mac 등) 이케 구글링이라도 해보자.
여튼 다 열었다고 생각하고, 다음 진행을 하도록 하겠따.
npm이 다들 깔려있는 상태라고 생각하고 진행한다고 했다.
1. 만약 본인이 nodejs 를 한 적이 별로 없어서 뭐가 뭔지 모르겠다.
2. 난 express-generator 을 설치한 적이 없다.
등에 해당된다면 저 꺼무잡잡한 (혹은 남색)창에
npm install express-generator -g
라고 치자.
npm으로 install 등 하는 법을 모른다면 설명 해 봐야 입만 아프고,
이 글이 node.js 개발 방법에 대해 설명한 글도 아니므로,
그냥 노드.js의 프로젝트 기본 틀을 개 빠르게 만들어주는 좋은 툴이라고 생각하면 된다.
몰라도 그냥 따라하자.
다 install 되었다면, (혹은 원래 깔려있었다면)
express -v ejs
라고 치자.
(사실 그냥 express라고 쳐도 되는데 내가 원래 ejs를 쓰다보니까 습관적으로 쳤음 ㅠ_ㅠ... 상관없으니 그냥 생각 하지 말고 따라하자)
그리고 나면 자동으로 프로젝트가 생성되어 있다.
적당한 에디터(visual studio code , atom , sublime text 3 따위의 것을 의미한다.)로 폴더를 열도록 하자.
.... 아무것도 없고 어떻게 하는지 모르겠다면 인터넷에 visual studio code 설치 방법을 치고 ....
저 까 - 만 창을 visual studio code 설치 후에
다시 껏다가 켜고나서 code . 이라고 입력하자. (code . 에서 저 ' . ' 까지 다 입력해야한다 ㅠ_ㅠ..)
왼쪽 폴더 구조같이 나왔으면 app.js를 눌러보자.
그러면 뭔 휘황찬란하게 이미 난 짠적도 없는데 만들어진 코드를 볼 수 있을 것이다.
이제 이 서버에서 카카오톡 봇 요청을 처리하면 된다.
지금 설명하는 내용은 카카오톡 플러스 친구 관련한 내용인데
지금 당장 들어가서 확인해 볼 필요는 없지만 여튼 이해를 돕기 위해서 언급을 한번 하고 가겠다.
우리는 카카오톡 에서 제공해주는 API라는 것을 이용해서 서버를 돌릴 것이다.
기본적으로 카카오톡 봇 API는 관리자 메뉴 -> 스마트 채팅 부분에서 세팅하게 된다.
이 스마트 채팅이 서버가 자동 응답을 해주는 부분이 된다.
플러스친구 관리자 스마트 채팅 부분으로 들어가
API형 질의응답을 설계할 수 있게 되어있다.
따라서 우리는 카카오에서 제공하는 형식에 맞게 서버를 구성하면 된다.
걍 뭔소리 하는지 모르겠으면 일단 조용히 따라해보자 :)
일단 대충 읽어봐도 처음 대화창이 열리면 나오는 대화인 것 같다. 그치?
내 주소 (ex, 네이버의 주소 www.naver.com 이다) 뒤에 /keyboard 가 붙은 url을 호출하는 모양이다.
디테일한건 알 필요 없이 기계적으로 한번 움직여보자.
기존 app.js에서 1,2 라고 주석이 달린 부분을 수정하자.
원래는 users뭐시기라고 되어 있던 부분이다.
(8, 23번째 줄이다)
난 꾸준히 말했지만 자세히 이유까지 설명하지는 않을 참이다.
이해하려면 머리가 아프니까.
이해되면 축하하고, 그렇지 못하더라도 그냥 따라해보자.
1번은 routes폴더 안의 keyboard.js 파일의 소스코드를 불러오라는 뜻이고,
2번에 대해서 설명하자면, ~~~/keyboard 로 요청이 들어온 것을 아까 불러온 keyboard.js파일로 처리하라는 뜻이다.
당연하게도 이제 기존의 users.js를 keyboard.js로 바꾸어야 한다.
테스트를 하기 위해서 그냥 노래 추천하는 bot을 만들려고 하고, 이렇게 수정을 해 주면 된다.
일단 첫번째로 menu라는 곳 안에는 두가지 옵션이 있다.
type : buttons
buttons : ["메뉴1" , "메뉴 2" , "메뉴3" , .......]
이 글은 코딩을 잘 못하는 독자를 대상으로 하기 때문에 이 이외의 서버 응답에 대해서는 다루지 않을 것이다.
지금 프로그램 코드에서는 사용자에게 2지선다의 옵션을 준다.
1. "노래 추천해줘."
2. "네 노래로 추천해줘."
일단 여기까지 했으면 절반은 온거니까
오타 나지 않았나 한번 잘 확인해 보자.
* 뽀나쓰 -
app.js
keyboard.js
혹시나 오류메시지 나면 못찾고 울까봐 복붙해가라고 줌. ㅅㄱ링~