본문 바로가기

Node.js

[nodejs] 학식 카톡봇 예제

학식을 카톡봇으로 구현하는 예제에 대한 지식인 답변을 달아줌.

질문글:

https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040202&docId=311332856&ref=me3lnk

const School = require('node-school-kr');
const school = new School();
school.init(school.eduType.middle,school.region.gyeonggi,'J100004864');
var express = require('express');
var http = require('http');
var bodyParser = require('body-parser');
var app = express();

//저는 포트를 8080으로 설정했습니다.
app.listen(8080)

app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());

app.get('/keyboard', function(req, res){
	
	var data = {
		'type':'buttons',
		'buttons' : ['오늘 급식','내일 급식','사용법','문제점']
	};
	res.json(data);
});
app.post('/message',function (req,res){
	var msg = req.body.content
	console.log('전달받은 메시지:'+msg);
	var send = {};
	switch(msg){
		case '오늘 급식':
		school.getMeal().then(function(result){

			//text에 string을 return해줄겁니다!!
			var string="";

			for(var date in result){
				
				if(result[date]!=""){
					string+=result[date]+"\n"
				}
				//날짜들이 프로퍼티로 쭈루룩나오고
				//month가 나오면 그때부터는 필요없음.
				if(date=="month") break;
			}
			//이부분에서 send하면 클라이언트에게 보내는 반응이 끝인데
			//여기서 send를 보내시면 안되죠.
			//res.send(result)

			//res.Json이아니라 res.json인데, 위에 get에선 잘 쓰신 것을 보아 오타이신듯

			res.json({
				"message": {
				// result['']이 뭔지 모르겠네요.
				//result의 프로퍼티 중 ''이 들어간 애들을 모두 출력하시겠다는 의도이신가요?

				"text": string

			},
			"keyboard":{
				'type':'buttons',
				'buttons' : ['오늘 급식','내일 급식','사용법','문제점']
			}
			})
	})
	}
});