카카오톡 봇 만들기 II

간이 카카오봇 만들기 글
http://www.elfarchive.org/2018/02/kakaobot.html
에 이어서 쓰는 것인데요.


먼저 JS카카오봇에는 유틸리티기능인 Api, Utils가 있구, javascript 식으로 함수를 만들 수가 있어요.

먼저 Api 기능은 안드로이드 시스템 함수를 불러서 사용하는 기능인데요.
[Api 함수 목록]
Dialog
Thread
Toast
UIThreadn
allClearList
clearMessageList
errorLog
gc
getContext
getDate
getMessageList
getRandomString
getRoomList
getRoomMessageList
getRoomSenderMessageList
getRootView
getSenderMessageList
getSessionList
listAllClear
logger
papagoTranslate
reload
replyRoom
runFinalization
showToast
translate
arguments
prototype
name
arity
length

가 있구요. 사용법은 Api.함수()입니다.
ex) Api.papagoTranslate("ko","en",msg); - 네이버 번역 사용 기능이며, 해당언어, 번역대상언어, msg 형식을 인자로 넣게 되지요.

Utils 기능도 이와 비슷한 기능인데요.
[Utils 함수 목록]
Dialog
NewDialog
Thread
Toast
UIThread
delay
getAndroidVersionCode
getAndroidVersionName
getDate
getPhoneBrand
getPhoneModel
getRandomString
getVersionCode
getVersionName
getWebText
isCompatMode
isCompileMode
parseToHtml
parseToText


가 있구요. 사용법은 Utils.함수()에요.
ex) Utils.getWebText("http://stdweb2.korean.go.kr/search/List_dic.jsp?&SearchPart=Simple&SearchText=" + msg); - 국어대사전의 html을 가져오는 기능


API 사용 예시 - 국어대사전 기능


function response(room, msg, sender, isGroupChat, replier) {
if (msg.indexOf("국어대사전") != -1) {
  msg = msg.replace('국어대사전 ','');
  msg = msg.replace('국어대사전','');
  replier.reply(kordic(msg));
  }
}


function kordic(msg) {
  var html = Utils.getWebText("http://stdweb2.korean.go.kr/search/List_dic.jsp?&SearchPart=Simple&SearchText=" + msg);
        var res = "";
        for (var i = 1; i < html.split("<p class=\"exp\">").length; i++) {
        res += html.split("<p class=\"exp\">")[i].split("</p>")[0].replace(/<br>/g, "\n").replace(/(<.+?>|&nbsp;)/g, "") + "\n\n";
        }
      if (res.trim() == "") { 
   return "결과가 없어요~!";
   }
           else { 
   return (res.trim()) 
   }

}

이 기능을 구현하면, 국어대사전 + 검색어를 입력하면, 검색어에 대한 국어대사전 페이지의 HTML 값이 반환되고 이를 파싱해서 응답하게 됩니다.

Javascript 함수 정의하기 - 로또 번호 출력하기


function lotto() {
 var randomNum = ""; 
    var tempRanddomNum = ""; 

    for(i=0; i<6; )
    {
           tempRanddomNum  = Math.floor(Math.random() * 45) + 1;
           if(randomNum.indexOf(tempRanddomNum  + " ") == -1) 
           {
              randomNum += tempRanddomNum  + " "; 
              i++; 
           }

          if(i == 6) 
              break;
    }
     return randomNum;

}

위 코드는 자바스크립트 함수 자작 방법을 사용해서 로또번호를 출력하는 함수인데요.
function response(메세지를 받았을 때 반응하는 함수) 안에다가 lotto()를 사용하게 되면 로또번호 6개를 출력해서 반환하는 함수에요.

댓글 없음:

댓글 쓰기

글에 대한 의문점이나 요청점, 남기고 싶은 댓글이 있으시면 남겨 주세요. 단 악성 및 스팸성 댓글일 경우 삭제 및 차단될 수 있습니다.

모든 댓글은 검토 후 게시됩니다.

Translate