카카오톡 봇 만들기 js - kakaotog bos mandeulgi js

GitHub - ksaidev/KakaoBot: A Kakao Bot based on KakaoPy and KakaoLink-Python

A Kakao Bot based on KakaoPy and KakaoLink-Python. Contribute to ksaidev/KakaoBot development by creating an account on GitHub.

github.com

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js

파이썬으로 제공되는 해당 코드로 카카오톡 챗봇을 만들었었는데 자꾸 영정을 먹었다(이거로 본계도 영정먹어서 탈퇴하고 고생함 ㅠ)

이게 로코프로토콜을 써서 만든건지 뭔진 모르겠는데.. 안전한 방식으로 찾기로 하였다.

그래서 대안을 찾아보니 자바스크립트로 짜는방법을 찾았는데,,

이 녀석을 통해 만들면 된다. 제공되는 응답 봇중 가장 인기가 많은것 같았다.

채팅 자동응답 봇 - Google Play 앱

상단바에 뜨는 메신저 앱의 알림을 읽어와서 사용자가 설정한 조건을 만족하거나 프로그래밍한 내용에 따라 자동으로 답장을 보내주거나 하는 앱입니다.

play.google.com

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js

이 앱은 핸드폰에서 카카오톡 메세지가 플로팅(알림)으로 오는걸 읽어서 답장 보내는 방식으로 작동한다.

따라서 내가 봇계정으로 봇을 작동시키려는 방에 들어가 있거나 카톡 알림 또는 플로팅 기능을 꺼놓으면 작동하지 않는다. 또한 자기자신에게 메세지를 보내도 당연히 작동되지 않는다. 계정을 따로 파서 1:1톡을 날려서 실험해보자

추가로 이 앱을 설치해줘야 봇이 작동한다. Wear OS를 통해 카톡 메세지를 응답하여 보낸다고 한다.

Wear OS by Google 스마트시계 - Google Play 앱

Wear OS by Google(이전의 Android Wear) 앱으로 스마트시계와 휴대전화를 동기화하세요.

play.google.com

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js

필자 같은 경우 계속 봇을 돌릴 여분의 폰이 없어서 NOX앱으로 가상 핸드폰에 해당 앱들을 깔았다.

맨처음 채팅 자동응답 봇 앱을 들어가면 권한 설정을 해달라고 하는데 전부 해주면 된다.

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js
정상적으로 설치되면 사진과 같이 나온다

환결 설정에 들어가면 몇버전의 자바스크립트 문법을 사용하는지 알 수 있다.

따로 설정에 손댈필요는 없다.

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js
ECMA Script 6 문법을 사용한다

해당 블로그에 기능들이 잘 설명되어 있다.

Mozila Documentation에 있는 API들이 작동 안되면 아~ 버전이 낮아서 사용 할 수 없는거구나 하고 넘어가면 될 것같다.

ES6 기능 정리(ECMAScript 6)

ECMA라는 것은 표준화된 JavaScript를 만들기 위해 만들어진 사양을 의미 합니다. 그에 따른 버전인 ES6 버전에 대해서 간단하게 내용을 요약하여 보았습니다. 1. 변수 선언 방법의 변화(let, const)  - le

lts0606.tistory.com

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js

이제 내가 친 채팅을 그대로 따라치는 봇을 만들어보자.

원래 화면으로 돌아가 오른쪽위에 땡땡이를 눌러주자

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js
봇 추가

봇의 이름을 적어주고, 언어는 자바스크립트로 만들어주자.
본인이 잘쓰는 언어가 있다면 그거로 선택해도 무관하다.

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js
봇 추가

봇이 잘 생성된것을 확인 할 수 있다.

기본적으로 봇이 꺼져있는데 작동을 위해 켜주도록하자

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js
봇 on

이제 봇에 소스코드를 작성할 차례이다.

땡땡이와 수정버튼을 눌러준다.

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js
봇 수정

그럼 다음과 같은 소스를 입력하는 창과 여러 메뉴가 보인다

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js
봇 수정 창

기본적으로 response라는 함수가 선언되어 있는데, 이 함수는 카톡에서 메세지가 왔을때 실행(응답)하는 함수이다.

각각의 파라미터의 의미는 다음과 같다.

파라미터 의미
room 채팅방 이름
msg 보낸 메세지
sender 메세지 보낸 사람 이름
isGroupChat 단체 채팅방이면 true, 아니면 false 반환
replier 답장 메서드 객체
ImageDB 이미지 정보가 담겨 있는 객체 (화질 bad)

기본적으로 replier.reply(보낼메세지)를 통해 메세지를 보낸다.

이를 통해 내가 적은 메세지를 그대로 따라서 응답하는 봇을 만들어보자

function response(room, msg, sender, isGroupChat, replier, ImageDB, packageName) {
    replier.reply(msg);
}

해당 소스를 작성해주고, 빨간색 네모표시한 저장 버튼과 리로드 버튼을 눌러서 수정한 코드가 봇에 적용되게 해주자.

저장&리로드를 했는데 스크립트 리로드 완료가 아닌 다른 메세지가 뜬다면 해당 메세지를 보고 오류를 고쳐나가야 된다.

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js
저장 및 리로드

이제 왼쪽 아래에 있는 메뉴인 디버깅 룸으로 들어가서 내가 원하는대로 작동하는지 확인 할 수 있다.

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js
따라하지말라구!!

디버깅 룸에서 정상작동한다면 코드가 원하는대로 작동한다는 것이다.

이제 카톡에서 1:1 톡을 걸어서 정상작동하는지 확인해보자

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js
완성!

카톡에서도 정상작동한다면 기본적인 세팅이 끝난것이다.

이제 자바스크립트를 통해 원하는대로 카톡봇을 만들면된다.

만약 지금까지 다 따라했는데, 디버깅 룸에서는 작동하는데 카톡메세지를 읽어와서 응답하는게 작동이 안된다면 베타버전을 깔아서 다시 시도해보자(현재 일부 기종에서 안되는 문제가 있음)
다시 깔고 나면 스크립트 리로드하고 디버깅 룸에서 작동하는지 먼저 확인해보고 테스팅 gogo
앱을 완전히 지우고 다시 까는것을 권장한다

GitHub - DarkTornado/KakaoTalkBot: Unscriptable KakaoTalk Bot

Unscriptable KakaoTalk Bot. Contribute to DarkTornado/KakaoTalkBot development by creating an account on GitHub.

github.com

카카오톡 봇 만들기 js - kakaotog bos mandeulgi js
카카오톡 봇 만들기 js - kakaotog bos mandeulgi js

그래도 안된다면 카카오톡 9.6.7 버전으로 설치하는게 맘편하다