-
AWS Lambda로 랜덤아재개그 카카오 플러스친구 만들기 6편 | 텍스트로 반응하는 API (2)Serverless 2018. 11. 8. 02:00
랜덤 아재 개그 동작
제가 만들려는 봇은 이런 형태입니다.
재밌는 거 없냐고 물어보면,
아재개그 시동을 거는 질문을 합니다.
뭐냐고 물어보면,
아재개그를 칩니다...!
기본 키보드 변경
먼저 기본 키보드를 재밌는 거 없냐로 변경하겠습니다.// router/get.js
const {DEFAULT_KEYBOARD} = require('../const'); exports.getHandler = ({path}) => { if (path === '/keyboard') { return DEFAULT_KEYBOARD; } return `success get ${path}`; };// const.js
exports.DEFAULT_KEYBOARD = { type: 'buttons', buttons: ['재밌는 거 없냐'], };이제 처음 화면에 '재밌는 거 없냐'라는 버튼 하나만 나오겠죠?
기본 키보드는 재사용을 위해 const.js로 분리했습니다.
랜덤아재개그 질문 방출
const.js 에 아재개그 질문 셋을 넣어두고,나만 나오겠죠?post.js 에서 방출합시다.
// const.js
exports.DEFAULT_KEYBOARD = { type: 'buttons', buttons: ['재밌는 거 없냐'], }; exports.jokeList = [ { question: '둘리가 다니는 학교는?', guesses: ['둘리학교?', '둘리중?', '자퇴?'], answer: '빙하타고~', }, ... ];// router/post.js const {DEFAULT_KEYBOARD, jokeList} = require('../const'); exports.postHandler = ({path, body}) => { const {type, content} = JSON.parse(body); const defaultButton = DEFAULT_KEYBOARD.buttons[0]; const randomJoke = jokeList[Math.floor(Math.random() * jokeList.length)]; if (path !== '/message' || type !== 'text') { return ({message: '음...?', keyboard: DEFAULT_KEYBOARD}); } if (content === defaultButton) { return ({ message: {text: randomJoke.question}, keyboard: { type : 'buttons', buttons : randomJoke.guesses, } }); } const foundJoke = jokeList.find(j => j.guesses.includes(content)); if (foundJoke) { return ({ message: {text: foundJoke.answer}, keyboard: DEFAULT_KEYBOARD, }); } return ({message: '음...?', keyboard: DEFAULT_KEYBOARD}); };
처음에 기본 버튼을 눌렀을 경우에는 랜덤 질문을 방출하고,
그 다음 버튼을 눌르면 답을 알려주는 코드입니다.
예를 들면
'재밌는 거 없냐' (기본 버튼) => '둘리가 다니는 학교는?' (랜덤 질문) '둘리중?' (그 다음 버튼) => '빙하타고~' (답)
이런 식이죠
이제 테스트해봅시다.
완성!
완성했습니다!!
데스크탑에서도 잘 동작합니다.'Serverless' 카테고리의 다른 글
CloudWatch 활용하기 2편 | 클라우드워치로 Lambda 반복 실행하기 (0) 2018.11.14 CloudWatch 활용하기 1편 | 클라우드워치에서 Lambda 로그 확인하기 (0) 2018.11.14 AWS Lambda로 랜덤아재개그 카카오 플러스친구 만들기 5편 | 텍스트로 반응하는 API (1) (0) 2018.11.07 AWS Lambda로 랜덤아재개그 카카오 플러스친구 만들기 4편 | 키보드 API 만들기 (0) 2018.11.07 AWS Lambda로 랜덤아재개그 카카오 플러스친구 만들기 3편 | 리펙토링 (0) 2018.11.06 댓글