SMALL
안녕하세요 오늘은 /시간표를 입력했을 때 봇이 특정 학교 특정 반의 시간표를 알려주는 코드를 짜보겠습니다.
/급식과 마찬가지로 나이스에서 인증키를 발급받아야합니다(이미 발급 받았으면 그대로 사용하면 됩니다).
https://open.neis.go.kr/portal/guide/actKeyPage.do
로그인 | 나이스 교육정보 개방 포털
로그인 원하시는 소셜서비스를 선택해 주세요. 복잡한 회원가입 절차없이 SNS 계정으로 인증 및 로그인하여Open API 등의 서비스를 편리하게 이용하실 수 있습니다.
open.neis.go.kr
https://open.neis.go.kr/hub/hisTimetable?KEY=6b15c10192db4d8194e4b3c1b5df01c5&Type=json&plndex=1&pSize=20&ATPT_OFCDC_SC_CODE=B10&SD_SCHUL_CODE=7010059&AY=2021&SEM=2&ALL_TI_YMD=
open.neis.go.kr
위와 같이 학교코드, 교육청 코드, 학년 반 등을 입력하면 정갈하지 않은 날 것의 상태의 시간표 정보가 주어집니다.
밑의 코드를 이용하여 파싱및 전송 방법을 참고하시기 바랍니다.
function response(room, msg, sender, isGroupChat, replier, imageDB, packageName){
msg = msg.trim();
if(msg=="/시간표"){
try{
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth();
var date = now.getDate();
let hours = now.getHours();
if(hours>=16 && hours<=23){
date++;
}
month += 1;
month = String( month );
date = String( date );
if(month.length==1){
month = "0" + month;
}
if(date.length == 1){
date = "0" + date;
}
var total = year + month + date;
var result;
result = Utils.getWebText("https://open.neis.go.kr/hub/hisTimetable?KEY=6b15c10192db4d8194e4b3c1b5df01c5&Type=json&plndex=1&pSize=20&ATPT_OFCDC_SC_CODE=B10&SD_SCHUL_CODE=7010059&AY=2021&SEM=2&ALL_TI_YMD="+total+"&GRADE=2&CLASS_NM="+room, false,false);
result = result.split("{\"row\":[")[1].split("]}]}")[0];
result = result.split("\"ITRT_CNTNT\":\"");
var i;
var timetable = "";
for(i = 1; i<result.length; i++){
result[i] = result[i].split("\",\"LOAD_DTM")[0];
timetable+= result[i];
if(i!=result.length-1){
timetable += "\n";
}
}
replier.reply(year+"년 "+ month+"월 "+ date+"일 시간표는 \n"+ timetable);
}
catch(e){
replier.reply("뒤에 반을 붙여주세요");
}
return 0;
}
var cmd = msg.substring(0, 4);
var data = msg.replace(cmd,"");
data = data.trim();
data = data.substring(0, 2);
data = data.split("반")[0];
data = String( data );
var timetable = "";
if(cmd=="/시간표"){
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth();
var date = now.getDate();
let hours = now.getHours();
if(hours>=16 && hours<=23){
date++;
}
month += 1;
month = String( month );
date = String( date );
if(month.length==1){
month = "0" + month;
}
if(date.length == 1){
date = "0" + date;
}
var total = year + month + date;
try{
var result = Utils.getWebText("https://open.neis.go.kr/hub/hisTimetable?KEY=6b15c10192db4d8194e4b3c1b5df01c5&Type=json&plndex=1&pSize=20&ATPT_OFCDC_SC_CODE=B10&SD_SCHUL_CODE=7010059&AY=2021&SEM=2&ALL_TI_YMD="+total+"&GRADE=2&CLASS_NM="+data, false,false);
result = result.split("{\"row\":[")[1].split("]}]}")[0];
result = result.split("\"ITRT_CNTNT\":\"");
var i;
for(i = 1; i<result.length; i++){
result[i] = result[i].split("\",\"LOAD_DTM")[0];
timetable+= result[i];
if(i!=result.length-1){
timetable += "\n";
}
}
replier.reply(year+"년 "+ month+"월 "+ date+"일 시간표는 \n"+ timetable);
}
catch(e){
replier.reply("시간표 정보가 없습니다");
}
}
}
LIST
'카카오봇' 카테고리의 다른 글
카카오봇 /날씨 + 지역 구현하기 (0) | 2021.12.31 |
---|---|
카카오봇 /급식 기능 구현하기 (3) | 2021.12.25 |
나의 간단한 카카오 채팅봇 소개 (0) | 2021.12.22 |