본문 바로가기
Uipath

Uipath 카카오톡 그룹방 메시지 보내기 with Python

by Sol95 2023. 4. 25.
728x90

Uipath 카카오톡 그룹방 메세지 보내기에는 python작성된 코드와 uipath 두가지 부분 파일 첨부참조 하시면 됩니다.
다만 RPA에 적용할때 아래내용은 참고하셔야합니다
 

실제 업무 적용 시 중요사항

1.PC카톡은 모바일1대 + PC1대 원칙을 가지고 있으며 실제 운영에 포함을 할 경우 봇 PC마다 1대씩 추가 및 그룹방을 봇마다 추가 해줘야합니다(이슈 사항으로는 PC 1대 마다 실제 단말기 회선을 가지고 있어야 회원가입이 가능할테니 이점 유의바랍니다)
2.현업에게 작업완료를 알려는 방식으로 쓰게 될 경우 기존 업무 + 카카오톡 메세지 보내기 일텐데 카카오톡 메세지 보내기 부분은 사전에 100% 되는 서비스는 아니라고 전달 해야합니다
이유는 카카오톡 업데이트 발생으로 인한 선택타입에 대한 값이 변경이 될수 있으므로 어디까지나 보조 서비스 형태로 진행하는거지 실제 RPA업무에는 문제가 없음을 강조해야합니다

python_Kakao_Send.xaml
0.01MB
tes.py
0.00MB

위 첨부파일 사용하시면 에러 발생합니다 tes.py 폴더 경로 설정에 대한 uipath 부분 수정 해주셔야 합니다
Python 코드는 아래 이전글 내용소스에서 달라지는 부분은 2곳만 수정하면 됩니다.
2022.12.20 - [RPA] - RPA 카카오톡 그룹톡방 메세지 보내기(Uipath도 적용해볼 예정)

import time
import win32con
import win32api
import win32gui
# 카카오톡 대화창 열고 메세지 보내는 부분은 백그라운드로 작업 되는게 아닌점 참고
# 백그라운드에서 작업 되는 부분은 카카오톡 채팅방 검색할때 Edit 부분에서만 적용
# 카톡창 이름, (활성화 상태의 열려있는 창)
# 채팅방에 메시지 전송
def kakao_sendtext(chatroom_name, text):
    # 핸들 _ 채팅방
    time.sleep(1)
    hwndMain = win32gui.FindWindow( None, chatroom_name)
    hwndEdit = win32gui.FindWindowEx( hwndMain, None, "RichEdit50W", None) #인용한 블로그에 소스는 RichEdit20W로 되있으나 지금은 값이 변경됬다
    # hwndListControl = win32gui.FindWindowEx( hwndMain, None, "EVA_VH_ListControl_Dblclk", None)
    time.sleep(1)
    win32api.SendMessage(hwndEdit, win32con.WM_SETTEXT, 0, text)
    SendReturn(hwndEdit)

# 엔터
def SendReturn(hwnd):
    time.sleep(1)
    win32api.PostMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
    #time.sleep(0.01)
    #win32api.PostMessage(hwnd, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

# 채팅방 열기
def open_chatroom(chatroom_name):
    # # 채팅방 목록 검색하는 Edit (채팅방이 열려있지 않아도 전송 가능하게)
    hwndkakao = win32gui.FindWindow(None, "카카오톡")
    hwndkakao_edit1 = win32gui.FindWindowEx( hwndkakao, None, "EVA_ChildWindow", None)
    hwndkakao_edit2_1 = win32gui.FindWindowEx( hwndkakao_edit1, None, "EVA_Window", None)
    hwndkakao_edit2_2 = win32gui.FindWindowEx( hwndkakao_edit1, hwndkakao_edit2_1, "EVA_Window", None)
    hwndkakao_edit3 = win32gui.FindWindowEx( hwndkakao_edit2_2, None, "Edit", None)
	#by.Sol95
 	# Edit에 검색 _ 입력되어있는 텍스트가 있어도 덮어쓰기됨
    time.sleep(1)
    win32api.SendMessage(hwndkakao_edit3, win32con.WM_SETTEXT, 0, chatroom_name)
    time.sleep(1)   # 안정성 위해 필요 더 줄여도 상관없음
    SendReturn(hwndkakao_edit3)
    time.sleep(1)
def main(kakao_opentalk_name = '', text = ''):
    open_chatroom(kakao_opentalk_name)  # 채팅방 열기
    kakao_sendtext(kakao_opentalk_name, text)    # 메시지 전송
main()

1.변경부분 첫번째
kakao_opentalk_name = '채팅방 이름 ex)마개랑 사무자동화 익히기' text = '채팅창에 보낼 메세지 입력'
여기부분을 이제 지워주고 main에 인수를 Uipath를 통해 전달하기 때문에 위에 부분이 필요 없습니다
 
2.변경부분 두번째
def main(kakao_opentalk_name, text) 이부분을 위에 내용을 제거 해줬기에 인수로 받기 위해
def main(kakao_opentalk_name = '', text = '') 이렇게 변경을 해줍니다
기존 형식대로 진행 하게 되면 인수값을 제대로 뱉어내지 못합니다 따로 인수값들에 대한 형태를 선언하지않았기에 기존 형식대로 인수값을 입력하면 에러가 발생합니다

728x90
반응형

댓글