Timpossible history

[파이썬] 카카오톡 메세지 자동으로 보내기 본문

Python

[파이썬] 카카오톡 메세지 자동으로 보내기

팀파서블 2024. 1. 23. 20:14

카카오톡 데스크 앱을 이용해서 자동으로 메세지를 보내기 위해서 여러 방면으로 알아봤지만, 당연히 카카오 open API는 이런 걸 허용할리는 없었고, 사용자의 기기를 직접 제어하는 코드를 짜야한다는 결론에 이르렀다.

동일한 메세지를 한 두개의 채팅방에 보내야하는 경우에는 상관이 없지만 방의 갯수가 늘어나면 늘어날 수록 여간 귀찮은 일이 아닐 수 없으니, 아주 편하게 자동으로 보낼 수 있을 것 같아 코드를 짜보았다.

 

1. 라이브러리 설치

 

사용자의 컴퓨터를 제어할 수 있는 라이브러리 중에는 pyautogui 같은 매우 유용한 라이브러리가 있지만, 미숙한 나의 실력 탓인지 나의 맥북에서는 잘 동작하지 않았기 때문에 여러 라이브러리를 탐색하던 중 찾게 돤 아주 좋은 라이브러리 pynput을 설치했다.

그리고 키보드를 제어할 수 있는 파이썬 keyboard 라이브러리 또한 설치해주었다.

pip3 install pynput pyperclip keyboard

 

2. 코드 작성

 

프로그램으로 만들어서 팔 것도 아니기에 그저 내가 사용할 용도로 만들었기에 간단하게 작성해보았다.

 

from pynput.mouse import Button, Controller as MouseController
import pyperclip
import time
import keyboard

mouse = MouseController()

# 원하는 위치로 마우스를 이동
mouse.position = (900, 150) # 첫번째 채팅창의 위치를 설정.
time.sleep(1)

# 더블 클릭 수행
mouse.click(Button.left, 2)
time.sleep(1)

text = "내가 쓰고 싶은 내용"

pyperclip.copy(text)

#보내고 싶은 채팅방의 갯수에 맞게 설정
for i in range(25):
    try:
        time.sleep(1)
        keyboard.press_and_release('command+v')
        time.sleep(1)
        keyboard.press_and_release('enter')
        time.sleep(1)
        keyboard.press_and_release('esc')
        time.sleep(1)
        keyboard.press_and_release('down')
        time.sleep(1)
        keyboard.press_and_release('enter')
        time.sleep(1)
    except:
        pass

 

이 코드의 실행 방식은 카카오톡 앱을 실행 시킨 후에 코드를 작동 시키는 것이다.

이 코드를 잘 사용하기 위해서 내가 메세지를 보내고자 하는 방들을 즐겨찾기에 등록시킨 후 임의로 방들의 이름에 동일한 문자('123'을 추가했음)를 추가해서 친구 검색에 123을 써놓으면 방들이 나열이 되고, 첫번째 방에 들어가 코드에 미리 적어놓은 text를 pyperclip과 keyboard 라이브러리를 통해 입력을 하고 메세지를 보낸다. 그 후 esc를 눌러 채팅창을 끄고 키보드의 down 버튼을 눌러 다음 채팅창으로 넘어간 후 enter 키를 눌러서 그 방에 들어가게 된다. 그리고 또 메세지를 보내며, 자동적으로 메세지를 끝까지 보내게 된다.

 

3. 주의사항

 

코드를 실행하는 동안에는 카카오톡 앱을 켜놓아야 하기 때문에 다른 업무를 못하게 된다. 마우스든 키보드이든 손도 대면 안 되는 불편함이 있다. 카카오 developers에서 제공하는 open API가 없으니 사용자의 컴퓨터를 직접 제어하게 해야하니 그럴 수 밖에..

 

'Python' 카테고리의 다른 글

[Python] PyQt5로 응용프로그램 만들기(Feat. Pyinstaller)  (0) 2024.02.28