간이 카카오톡 봇 만들기

요즘 카톡 자동응답을 걸 수 있는 봇 앱이 돌아다니기에 후기를 적어 보네요.

카카오톡 자동응답 봇을 만들기 위해서는, javascript 로 프로그래밍한 걸 카카오톡 봇 앱 위에 올려서 돌려야 하는데요. 몇 가지 사전 준비가 필요합니다.


준비물
1. android 5.0이상의 스마트폰 혹은 에뮬레이터
2. jskakaobot, android wear 앱
3. javascript 앱


카카오톡 봇 구현방법
1. 먼저 https://play.google.com/store/apps/details?id=com.plorence.jskakaobot&hl=ko 로 들어가셔셔, 폰에 jskakaobot을 설치하세요.

2. 그 다음에는, 안내에 따라 android wear앱을 스토어에서 설치하세요.

그 다음에는 카카오톡 봇에 들어가서 권한설정 -> 카카오톡 봇, android wear에 권한을 허용하세요.



3. 스크립트 수정에 들어가서 코드를 수정합니다.

들어가보시면
function response(room, msg, sender, isGroupChat, replier) {

}
라는 게 보이실텐데요. 여기에 응답을 구현하시면 됩니다.
일단
room - 방 이름이 반환되는 변수입니다.
sender - 메세지 보낸 사람의 아이디입니다.
isGroupChat - 그룹채팅인지 1:1 채팅인지에 따라 다르게 나오는 변수이구요.
replier - 질문에 대답하는 값입니다.


if (msg.indexOf(내용) != -1){} - 여기서 msg는 메세지 스트링이며, indexOf()은 포함된 문자열을 찾는 값,  !=-1은 해당 내용이 메세지에 포함되어있다는 걸 의미합니다.

즉 이런 식으로 작성하면 메세지에 반응하는 조건문을 만들 수 있는 거죠.

replier.reply(내용); 은 내용을 응답하는 함수입니다.


그 외에도 몇가지 javascript함수를 사용할 수 있으나 기본적인 함수들만 사용할 수 있으며, 고급 함수는 대부분 사용할 수 없습니다.
그 외에도 자잘한 버그들이 많이 있더군요.

카카오톡 봇 예시코드(클로이봇)
카카오톡 간이봇으로, 인사와 간단한 검색 정도를 수행할 수 있는 봇입니다.
function response(room, msg, sender, isGroupChat, replier) {
 
 if (msg.indexOf("클로이 인사") != -1) {
  replier.reply("클로이입니당♥");
  }
  
 if (msg.indexOf("클로이 사랑해") != -1) {
  replier.reply("사랑해요 "+sender+" ♥♥♥");
  }
 if (msg.indexOf("클로이 안녕하세요") != -1) {
  replier.reply("안녕하세요 "+sender);
  }
 if (msg.indexOf("클로이 어디있어") != -1) {
  replier.reply("여기 있어용 ㅎㅎ★");
  }

 if (msg.indexOf("클로이 어시스트") != -1) {
  replier.reply("어시스트 모드로 들어갑니다.");
  }

 if (msg.indexOf("클로이 조용히") != -1) {
  replier.reply("네 조용히 할께요 히잉...");
  }
 if (msg.indexOf("클로이 미워") != -1) {
  replier.reply("히잉..ㅠㅠ");
  }
 if (msg.indexOf("클로이야") != -1) {
  replier.reply("클로이입니당♥ "+sender);
  } 
 if (msg.indexOf("클로이 비트코인") != -1) {
  replier.reply("https://m.bithumb.com/wallet/P102");
  }
 if (msg.indexOf("클로이 뉴스") != -1) {
  replier.reply("https://news.google.co.kr/news/?tab=wn#0");
   }
 if (msg.indexOf("클로이 길찾기") != -1) {
  replier.reply("https://m.map.naver.com/directions/");
   }

 if (msg.indexOf("클로이 오늘날씨") != -1) {
  replier.reply("https://www.google.co.kr/search?source=hp&ei=RnZ8WuadM8e68QXZ_7TABw&q=%EC%98%A4%EB%8A%98+%EB%82%A0%EC%94%A8&oq=%EC%98%A4%EB%8A%98+%EB%82%A0%EC%94%A8&gs_l=psy-ab.3..0i131k1j0l9.824.2174.0.2432.11.11.0.0.0.0.107.1047.9j2.11.0....0...1c.1j4.64.psy-ab..1.10.952....0.CFwH4RCJzl0");
  }
 if (msg.indexOf("클로이 help") != -1) {
  replier.reply("클로이 자동톡 ver 0.11 명령어입니다.\n==============\n클로이 명렁어의 형식으로 쓰면 되는데요.\n\n클로이 인사\n클로이 현재시간\n클로이 토렌트\n클로이 블로그\n클로이 안녕하세요\n클로이 사랑해\n클로이 오늘날씨\n클로이 어디있어\n클로이 조용히\n클로이 미워 \n클로이 비트코인\n클로이야\n클로이 채굴조회\n클로이 뉴스\n클로이 help\n클로이 모노이데이즘\n\n======클로이 assist 명령어 ======\n\n 클로이 구글검색 검색어 \n클로이 나무검색 검색어\n클로이 위키검색 검색어\n클로이 단어검색 검색어\n클로이 울프람알파 검색어\n클로이 한영번역 검색어\n클로이 한일번역 검색어\n클로이 일한번역 검색어\n클로이 영한번역 검색어\n클로이 길찾기");
  }
 if (msg.indexOf("클로이 모노이데이즘") != -1) {
  replier.reply("https://monoideism.org/");
  }
 if (msg.indexOf("클로이 블로그") != -1) {
  replier.reply("www.elfarchive.org");
  }
 if (msg.indexOf("클로이 채굴조회") != -1) {
  replier.reply("https://miningpoolhub.com/index.php");
  }
 if (msg.indexOf("클로이 토렌트") != -1) {
  replier.reply("https://m.zbigz.com/");
  }
 if (msg.indexOf("클로이 현재시간") != -1) {
  var currentdate = new Date(); 
  var datetime = "현재날짜: " + currentdate.getDate() + "일"
                + (currentdate.getMonth()+1)  + "월" 
                + currentdate.getFullYear() + "년,\n 현재시간  :"
                + currentdate.getHours() + "시"  
                + currentdate.getMinutes() +"분" 
                + currentdate.getSeconds()+ "초";
  replier.reply(datetime);
  }
  
  
 
 // 클로이 어시스트 검색 명령어
 if (msg.indexOf("클로이 나무검색") != -1) {
  msg = msg.replace('클로이 나무검색 ','');
  msg = msg.replace('클로이 나무검색','');
  msg = msg.replace(/ /g,'%20');
  replier.reply("https://namu.wiki/w/"+msg);
  }
 
 if (msg.indexOf("클로이 구글검색") != -1) {
  msg = msg.replace('클로이 구글검색 ','');
  msg = msg.replace('클로이 구글검색','');
  msg = msg.replace(/ /g,'%20');
  replier.reply("https://www.google.co.kr/search?ei=rmB8WoSLD5bO8wW1kY3ICg&q="+msg+"&oq="+msg+"&gs_l=psy-ab.3..0l2j0i131k1j0l7.2833.3449.0.3675.3.3.0.0.0.0.105.206.0j2.2.0....0...1c.1j4.64.psy-ab..1.2.206...0i67k1.0.rtWPIdHO2FQ");
  }
 
 if (msg.indexOf("클로이 위키검색") != -1) {
  msg = msg.replace('클로이 위키검색 ','');
  msg = msg.replace('클로이 위키검색','');
  msg = msg.replace(/ /g,'%20');
  replier.reply("https://ko.wikipedia.org/wiki/"+msg);
  }
 
 if (msg.indexOf("클로이 울프람알파") != -1) {
  msg = msg.replace('클로이 울프람알파 ','');
  msg = msg.replace('클로이 울프람알파','');
  msg = msg.replace(/ /g,'%20');
  msg = msg.replace('+','%2B');
  replier.reply("https://m.wolframalpha.com/input/?i="+msg);
  }
 if (msg.indexOf("클로이 단어검색") != -1) {
  msg = msg.replace('클로이 단어검색 ','');
  msg = msg.replace('클로이 단어검색','');
  replier.reply("http://endic.naver.com/search.nhn?sLn=kr&searchOption=all&query="+msg);
  }
  
 if (msg.indexOf("클로이 한영번역") != -1) {
  msg = msg.replace('클로이 한영번역 ','');
  msg = msg.replace('클로이 한영번역','');
  msg = msg.replace(/ /g,'%20');
  replier.reply("http://translate.naver.com/#/ko/en/"+msg);
  }
 if (msg.indexOf("클로이 영한번역") != -1) {
  msg = msg.replace('클로이 영한번역 ','');
  msg = msg.replace('클로이 영한번역','');
  msg = msg.replace(/ /g,'%20');
  replier.reply("http://translate.naver.com/#/en/ko/"+msg);
  }
 if (msg.indexOf("클로이 한일번역") != -1) {
  msg = msg.replace('클로이 한일번역 ','');
  msg = msg.replace('클로이 한일번역','');
  msg = msg.replace(/ /g,'%20');
  replier.reply("http://translate.naver.com/#/ko/ja/"+msg);
  }
 if (msg.indexOf("클로이 일한번역") != -1) {
  msg = msg.replace('클로이 일한번역 ','');
  msg = msg.replace('클로이 일한번역','');
  msg = msg.replace(/ /g,'%20');
  replier.reply("http://translate.naver.com/#/ja/ko/"+msg);
  }
}

//이 아래 4가지 메소드는 스크립트 액티비티를 수정할 때 사용하는 메소드들
function onCreate(savedInstanceState, activity) {}
function onResume(activity) {}
function onPause(activity) {}
function onStop(activity) {}

댓글 없음:

댓글 쓰기

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

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

Translate