Programming/Scripting

카카오톡 오픈 채팅방 스팸 메세지 가리기 매크로 개발기[초급]

만들게 된 계기

 카카오톡 오픈채팅방에는 온갖 광고봇이 이 방 저 방 떠돌며 스팸을 퍼뜨린다. 특히 주식, 코인 리딩을 해주겠다며 다른 방 링크를 올리는 것을 오픈채팅방에 들어가 있는 누구나 한번쯤은 보았을 것이다.

 

몇몇이 봇을 유료로 사고파는 것 같은데 영리 목적으로 채팅방을 운영하는 것이 아닌 개인은 사용하기에 부담되기 때문에 공부 차원에서 직접 만들어 보았다.

 

왜 카카오 오픈 API를 사용 안했나?

 결론부터 얘기하면, 카카오톡 오픈 채팅방 관련 기능은 카카오에서 API로 제공하지 않는다. 즉, 카카오에서 오픈채팅 API를 제공해주기까지 하염없이 기다려야 한다.

 

광고 강퇴관련 api 봇 - FreeBoard / 자유게시판 - 카카오 데브톡 (kakao.com)

 

광고 강퇴관련 api 봇

강퇴 하는 봇을 만들고 싶은데 따로 API는 없을까요?

devtalk.kakao.com

카카오톡 오픈채팅 api 제공 계획 여부 문의 - REST API - 카카오 데브톡 (kakao.com)

 

카카오톡 오픈채팅 api 제공 계획 여부 문의

안녕하세요. 다른분이 올리신 주제에서 (오픈채팅 생성 api 는 없는건가요? 오픈채팅을 생성하고 해당 링크를 리턴하는 api 요) 오픈채팅 관련 API가 우선순위로 인해 딜레이가 되고있다고 말씀해

devtalk.kakao.com

오픈채팅 생성 api 는 없는건가요? 오픈채팅을 생성하고 해당 링크를 리턴하는 api 요 - REST API - 카카오 데브톡 (kakao.com)

 

오픈채팅 생성 api 는 없는건가요? 오픈채팅을 생성하고 해당 링크를 리턴하는 api 요

오픈채팅 생성 api 는 없는건가요? 오픈채팅을 생성하고 해당 링크를 리턴하는 api 요.

devtalk.kakao.com

위 링크에서는 각각 오픈채팅 API 기능은 제공하지 않는다는 카카오 개발자의 답변을 확인할 수 있다. '16년도에 카카오 내부에서 오픈채팅 관련 API 개발이 후순위로 밀렸다는 기록도 있다.

 

 

이해하기 | Kakao Developers 문서

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

위 링크는 카카오톡 메시지 API 문서이다. 실제로 해당 기능이 없다.

 

이미 누가 만들지 않았을까?

 일단 오픈채팅방 서비스도 나온지 시간이 좀 지났고, 나와 같은 니즈를 가진 사람들이 분명 있을 것이라 생각했다. 그래서 구글링 해보니 PC 카카오톡을 리버스 엔지니어링해서 봇을 만들고 유료로 파는 사람이 있었다. 물론 이는 불법이고 방법 또한 찾을 수 없었다.

 

결국, 다른 방법을 찾다가 재밌는 유튜브 영상도 찾게 되었다.

 

카톡 광고를 막아주는 개발자분께 300만원을 드립니다! #2 - YouTube

오죽 답답했으면 이 분이 스팸 잡겠다고 현상금까지 내걸었을까...

 

다른 목적의 봇 사례

[카카오톡봇] [초급] 단순 자동응답봇 만들어.. : 네이버블로그 (naver.com)

 

[카카오톡봇] [초급] 단순 자동응답봇 만들어보기

봇을 만들기 위한 준비는 끝났습니다! 그럼 이제 소스를 작성해 볼까요? 이번 강좌에서는 기초 중에서도 기...

blog.naver.com

 위 블로그에서는 메신저봇이라는 안드로이드 앱을 활용하여 봇을 만드는 방법을 소개하고 있다.

하지만, 이 방법은 루팅된 안드로이드 폰에서만 가능하고 아이폰은 일체 불가능할 뿐더러 가장 중요한 오픈채팅방 유저 추방, 메시지 가리기와 같은 행위는 불가능하다. 

 

고급 개발자용

카카오톡 봇 만들기 ( python, pc 카톡, 비활성 ) - 1편 :: airfox1의 개발 블로그 (tistory.com)

 

카카오톡 봇 만들기 ( python, pc 카톡, 비활성 ) - 1편

3줄 선 요약 플러스친구 아님 모바일 어플을 활용한 방법 아님 pc카톡, python 으로 pc 환경에서 봇을 제작함 서론 카카오톡 오픈 톡방에 봇이 있으면 좋을 것 같아서 만들려고 보니 카톡 api로는 자

airfox1.tistory.com

 위 블로그에서는 Windows PC 카카오톡 프로그램을 직접 핸들링하는 방법으로 봇을 만든 것을 공유했다. 필자도 해당 게시글의 코드를 전부 클론하며 웹페이지에서 특정 내용을 스크레이핑 후 메세지를 자동으로 보내는 봇을 만들어봤는데, 결국 Windows API에 대한 이해가 전무하다 보니 정작 중요한 오픈채팅 내 강제추방, 채팅 숨기기 기능을 핸들링하는 방법에서 막히고 다른 방법을 찾게 되었다.

 

만약, 본인이 Windows API에 대한 이해가 어느 정도 있고 완벽한 봇을 만들고 싶다면 MS에서 만든 spyxx.exe로 오픈채팅 윈도우 속성에서 각 핸들을 파악 후 구현하는 것을 추천한다.

 

결론 및 매크로 코드

 가장 비효율적이지만 초간단한 방법이 매크로라고 판단했다. 구글링을 조금 해보니 광고 잡는 매크로를 고도화해서 파는 업자도 발견할 수 있었다... 그 업자의 매크로가 동작하는 영상을 보고 간단한 스팸 메시지 자동 가리기 매크로를 클론해보았다.

 

매크로 실행을 위해서는 사전에 오토핫키를 설치해야 한다. 아래 링크에서 Current 버전을 설치하면 된다.

 

AutoHotkey

 

AutoHotkey

AutoHotkey provides a simple, flexible syntax allowing you to focus more on the task at hand rather than every single little technicality. It supports not only the popular imperative-procedural paradigm, but also object-oriented and command-based programmi

www.autohotkey.com

 

 

매크로 스크립트는 매우 단순하다. 아래 소스코드를 그대로 복사해서 ahk 파일로 만들고 실행하면 된다.

 

기능을 간단히 설명하면, F1을 누른 뒤 계속 감시할 카카오톡 오픈채팅방에 마우스 커서를 갖다대면 자동으로 계속 휠을 내리며 스팸이 포함된 메시지가 올라왔을 때 가리기 하는 것을 반복한다.

 

참고로, 소스코드 5번 라인의 Image.png는 생성한 ahk 파일과 같은 경로에 있어야 에러 없이 정상적으로 동작한다.

 

Image.png
0.00MB

 

아래와 같이 채팅방에서 잘 작동하는 것을 확인할 수 있다.