카카오톡 봇 만들기 (유튜브 )
카카오톡 봇 만들기! #1 짧고 쉽고 간단하게~ https://youtu.be/It1uQuxegx0
카카오톡 봇 만들기! #2 가위바위보 https://youtu.be/VaQiSzzxLxs
카카오톡 봇 만들기! #3 실시간 검색어 순위 https://youtu.be/Wv0Sv83oLTg
카카오톡 봇 만들기! #번외1 메신져봇으로 갈아타자
https://youtu.be/ojgqvCK26XE
카카오톡 봇 만들기! #4 기능설명, 접어보기, 전체보기 https://youtu.be/Dg1IX-tIEu0
카카오톡 봇 만들기! #5 날씨 알려주기
https://youtu.be/7DNaqFJYm5A
카카오톡 봇 만들기! #6 ftp 원격코딩, 코드관리
https://youtu.be/0nVmajTTNv4
메신져봇 앱으로 카카오톡 봇 만들기! #7 파일 읽고 저장하기
https://youtu.be/PMi7S-92VII
취소선은 2020년 3월 8일 22시 기준 작동불가인것

 

봇 사용자들을 위한 기능을 만들어 봅니다. 

 

처음 봇을 본 사람들에게 사용법을 알려줘야겠죠?

 

채팅방에 들어올 때마다 일일히 말할 수는 없는 노릇이구요. 

 

그래서! 봇이 스스로 사용법을 알려주도록 코드를 짜봅시다. 

 


들어가기 전에... 오늘 만드는 코드 설명
1. 도움말 : "/기능"을 보내면 기능과 명령어를 설명함
2. 패치노트 : "/패치노트"라 보내면 패치내역을 보내줌
3. 전체보기 : 답장이 길때, 카톡의 전체보기(접어보기) 기능을 활성화시켜줌

"/기능" msg를 받으면 replier.reply로 답장을 하게 됩니다. 

 

답장 내용은 "made by 준현크루\n\n--------기능-------\n\n가위바위보\n/실검"

 

이렇게 되어있습니다. 

 

이것을 카톡으로 보내면 다음과 같이 됩니다. 

made by 준현크루

--------기능-------

가위바위보
/실검

\n\n은 엔터입니다. 줄을 변경시켜 줍니다. 

 

\는 키보드자판에 프린트 되어 있는 경우도 있지만 대부분은 없습니다. 

 

그럴땐 한국원 기호 ₩을 입력해주세요. 메신져봇에서 자동으로 \ 라고 인식을 하게 됩니다. 

 

(주의하실점!  / <=요거 와는 다른 기호입니다.)

 

새로운 기능을 추가할 때마다 갱신해서 적어주시면 됩니다. 

 

 

 

 

 

"/패치노트" msg를 받으면 패치노트를 알려주도록 코드를 짜봅니다. 

 

"/기능"때처럼 replier.reply 로 답장을 해주면됩니다.

 

사진에 있는 코드는 카톡에서는 이렇게 보입니다. 

------패치노트------

20190826 ver1 /기능과 /패치노트 추가

"/기능"과 마찬가지로 코드를 추가할 때마다 패치노트를 갱신시켜주면 됩니다. 

 

 

 

 

 

계속해서 새로운 기능들을 추가하다보면 "/기능"과 "/패치노트"도 덩달아 길어집니다.

 

그런데 답장이 길어지면 카톡방에서 보기에 불편하겟죠?

 

이럴때 접어보기 기능을 이용하면됩니다. 

 

방법은 간단합니다. 무척긴 공백문자를 생성해서 접고 싶은 곳에 넣으면됩니다. 

 

 

 

 

var allsee = new Array(1000).join(String.fromCharCode(847));

이 공백문자 코드를 맨 윗줄에 두면됩니다. 

 

Array는 배열입니다. 제 첫글(https://omble-blog.tistory.com/2)에 나와있는 그거랑 같습니다. 

 

Array(1000)이므로 1000개의 사물함이 있는 배열을 만든겁니다. 

 

거기에 .join명령어로 1000개의 사물함을 하나로 합쳐줍니다. 

 

이때 사물함 사이에 있던 칸막이를 String.fromCharCode(847)로 치환해줍니다. 

 

String.fromCharCode(847)를 해석하면 CharCode의 847번째 문자라는 뜻입니다.

 

여기서 CharCode란 UTF-16 아스키 코드를 뜻하는데, 아스키 코드란 마치 학교에서 키순으로 번호를 매기는 것처럼 글자에다가 번호를 매기는 규칙이라 생각하시면 됩니다.

 

그중 847번째 글자가 공백문자인거구요. 

 

 

 

 

이렇게 접어보기를 하고 싶은 곳에 allsee를 넣어주면됩니다. 

 


var allsee = new Array(1000).join(String.fromCharCode(847));

function response(room, msg, sender, isGroupChat, replier, ImageDB, packageName, threadId){

    if (msg == "/기능") {
        replier.reply("made by 옴블\n\n--------기능------"+allsee+"\n\n안녕\n바보\n가위바위보\n/날씨");
    }
    if (msg == "/패치노트"){
        replier.reply("-----패치노트-----"+allsee+"\n\n20190826 ver1 /기능과 /패치노트 추가");
    }

    if(msg == '안녕'){
        replier.reply('안녕하세요');
    }
    
    if(msg == '바보'){
    	replier.reply('바부야');
    }
    
    if(msg == '가위'||msg == '보' ||msg == '바위'){
        var RSP = ['가위', '바위', '보'];
    	RSP_bot = RSP[Math.floor((Math.random() * 3))];
    	replier.reply(RSP_bot);
    	   
    	if(msg == RSP_bot){
     	   replier.reply('비겼습니다');
    	}
        else if((msg == '가위' && RSP_bot == '바위')||(msg == '보' && RSP_bot == '가위')||(msg == '바위' && RSP_bot =='보')){
    	   replier.reply('당신은 졌습니다');
    	}
    	else{
    	   	replier.reply('당신은 이겼습니다');
    	}
    }
}    ​

 

 

 

+ Recent posts