카카오봇 제작 방법 - 메신저봇R with javascript

요즘 카카오 오픈채팅방에서 개인정보가 다 유출되어서인지 주식 리딩방 추천 문자가 엄청나게 날아오더군요. 심지어 오픈챗방에 사용중인 제 대화명까지 다 붙여서 오는거 보고 깜놀했습니다. 어차피 제 개인정보는 공공재..신경쓰지 않기로 하면서 오픈챗방에 보이는 드리고와 같은 카카오봇을 한번 만들어보고자 합니다.

 

이 봇들은 어떤 방식으로 동작하는지 상당히 궁금했었는데 메신저봇R 이라는 것을 통해 많이 알게 되었습니다. 메신저봇R 개발자님께서 구현방식 또한 상세히 설명해두셨는데요.

 

간단히 작동방식을 요약하자면 다음과 같습니다.

 

1. NotificationListenerService 통해 알림 데이타 파싱

2. Rhino JavaScript Engine 을 통해 javascript 로직 구현

3. WearableExtender 통해 답장

 

다른 사이트에서 공부해보고 Rhino Engine 을 안드로이드에 임베딩해야겠다부터 파고 들었는데 라이노 엔진이 임베딩 된 메신저봇R이 이미 나와있는 상태여서 로직부만 구현하면 되겠다고 판단하여 진행했습니다.

 

 

 

 

 

구축 단계

 

저는 다음 단계를 거쳐서 테스트봇을 완성하고 간단히 오픈챗방에서 정상동작하는지 테스트해보았습니다.

 

1. 휴대전화 신규 개통 및 카카오톡 가입

2. 신규 휴대전화에 메신저봇R 을 설치(서버 용도)

3. 메신저봇R의 response 구현부 코딩

4. 오픈챗방에서 테스트 진행

 

1단계는 카카오톡 신규가입을 위한 부분인데 카톡이 닫힌 상태에서 푸시알림을 파싱하는 방식으로 진행할거라서 추가 계정이 필요했습니다. 

 

2단계는 메신저봇R을 설치할 용도의 휴대폰이 필요한데 개통할때만 잠시 폰을 썻고 이후에는 블루스택이나 LD플레이어와 같은 안드로이드 에뮬레이터를 써서 PC에 실행시켜 두고 있습니다.

 

메신저봇R은 구글플레이스토어에서 다운로드 및 설치 하시면 됩니다.

 

https://play.google.com/store/apps/details?id=com.xfl.msgbot&hl=ko&gl=US

 

메신저봇R (카카오 봇/페메 봇/라인 봇) - Google Play 앱

메신저봇의 리메이크 테스트 빌드입니다.

play.google.com

 

 

 

 

 

봇생성

 

설치 후 실행하면 우측 하단에 새로운 봇 추가를 위한 + 버튼이 있을텐데 그 버튼을 통해 봇을 하나 생성해줍니다.

 

 

기본 셋팅된 정보대로 봇을 하나 추가하면 아래와 같이 봇이 생성됩니다. 저는 test_bot 이라는 이름으로 봇을 하나 추가하였습니다.

 

각 버튼은 순서대로 컴파일, 코드 에디터,  봇과 대화, 로그, ??, 환경설정입니다.

두번째 에디터를 선택해서 코드 수정으로 들어가보겠습니다.

 

 

봇을 생성하면 기본적인 코드는 작성되어 있으며 알람이 올시 response 호출이 자동으로 되는데 여기서 사용자 로직을 구현하면 됩니다. 

 

 

 

 

 

로직코딩

 

 

room 은 알림이 온 대화방 이름

msg 는 대화 내용

sender 는 대화 작성자

repliler 은 응답객체 입니다.

나머지는 아직 다 파악하지 못했는데 이정도만 알아도 테스트를 해볼 수 있습니다.

 

다음은 모든 채팅 알림에 대해 메시지 원본 그대로 답장하는 코드입니다.

function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) {
	// 모든 채팅 알림에 대해 메시지 원본 그대로 답장하는 기능
    replier.reply(msg);  
}

 

이렇게 하고 오픈채팅방을 만들어서 테스트 해보면 다음과 같이 echo 되어 오는 대화를 볼 수 있습니다.

 

 

 

 

너무 간단해서 1시간도 안걸리네요. 다음에는 날씨 정보를 뿌리고, open ai API를 붙여서 chat GPT 기능도 활용해보도록 하겠습니다.

 

 

 

카카오봇 제작 - 네이버 날씨 정보 가져오기 with 메신저봇R

개요 지난번 메신저봇R을 이용해서 카카오봇을 만들고 echo 기능을 통해 뼈대를 만들었습니다. https://quantrader.tistory.com/104 카카오봇 제작 방법 - 메신저봇R with javascript 요즘 카카오 오픈채팅방에

quantrader.tistory.com

 

https://quantrader.tistory.com/123

 

카카오봇 제작 - UDP Socket 을 이용한 명령어 처리 with 메신저봇R

개요 오늘은 메신저봇R을 이용해 socket 서버와 통신을 하는 걸 만들어 보려 합니다. 이미 제가 구축한 카카오봇에서 작동하는 소스를 발췌해 echo 기능을 넣어보는 예제로 쉽게 풀어보았습니다.

quantrader.tistory.com

https://quantrader.tistory.com/128

 

카카오봇 제작 - chatGPT를 메신저봇R에 내장하기

개요 메신저봇r을 이용해서 카카오봇을 만들어온게 몇일 안된거 같은데 여러모로 활용할 수 있는 방안을 만든것 같습니다. 이번에는 역시나 핫한 openAI의 chatGPT api를 이용해보려 하는데요. 구글

quantrader.tistory.com