WeChat이 정기적으로 루프에서 메시지를 보내고(cron 표현식 작업을 사용하면 매우 정확할 수 있음) 일괄적으로 메시지를 보낼 수 있는 작은 도구이며 모든 플랫폼에 배포할 수 있는 간단하고 직관적인 인터페이스도 제공합니다.
✅그룹 메시지: 여러 친구에게 동시에 다양한 메시지 보내기
✅자동으로 메시지 보내기: 자동으로 시간을 확인하고 해당 순간에 메시지를 보내나요? (크론 표현을 기반으로 분 단위까지 정확함)
✅루프에서 메시지 보내기: cron 표현식은 모든 루프 작업을 설정할 수 있습니다.
✅채팅 기록을 정기적으로 확인하고 테스트 결과에 따라 알림을 받으시겠습니까?
✅신뢰성 보장: 로깅 및 자동 오류 감지를 통해 예정된 작업이 한 순간도 놓치지 않고 실행되도록 할 수 있습니까?
✅로그인 인증 보호: 데이터 보안을 보장하는 로그인 보호
✅ 전체 플랫폼 지원, 서버 배포 용이, 서버는 클라이언트 요청을 수락하기 위해 win 플랫폼에 배포되고 클라이언트는 모든 플랫폼에 배포될 수 있습니까?
이 프로젝트는 서버와 클라이언트의 두 부분으로 나뉩니다.
서버는 WeChat과 함께 win에 설치되는 경량 서버입니다.
서버는 클라이언트와 완전히 분리되어 있으며 http 요청을 수락하여 WeChat 작업을 자동화합니다. 서버 인터페이스를 호출하기 위해 클라이언트를 직접 작성할 수도 있습니다.
wechat/ping
: 서버가 정상적으로 실행되고 있는지 확인하고 'status': 'pong'
wechat/send_message
: 메시지 보내기, json 형식의 데이터 name
및 text
허용, WeChat에서 자동화된 작업 수행wechat/check_wechat_status
: 위챗이 정상적으로 실행되고 있는지 확인wechat/get_dialogs
: 채팅 기록 가져오기wechat/get_dialogs_by_time_blocks
: 기간을 기준으로 채팅 기록을 가져오고 중첩된 목록을 반환합니다.wechat/send_file
: 파일 보내기서버에는 메시지 대기열과 뮤텍스 잠금이 있습니다. 서버에 메시지를 보내기만 하면 서버는 메시지 대기열을 자동으로 처리하여 메시지가 순서대로 전송되도록 하므로 여러 클라이언트를 배포하여 메시지를 보낼 수도 있습니다. 같은 서버.
클라이언트는 모든 플랫폼에서 실행될 수 있고 네트워크 요청을 통해 서버에 메시지를 보낼 수 있는 경량 프런트 엔드입니다.
首页
: 기능 개요日志
: 디버깅 및 오류 감지를 용이하게 하기 위해 클라이언트 함수 호출의 로그를 확인합니다. 일반적인 상황에서는 실패하지 않습니다. 실패는 함수 호출에 문제가 있음을 의미하며, 잘못된 메시지가 있을 수 있으며 데이터 저장에 실패할 수도 있습니다. , 주의할 필요가 있습니다.错误检测
: 클라이언트의 각종 기능이 정상인지, 예정된 작업이 누락되었는지 감지发送消息管理
: 메시지를 일괄적으로 보냅니다.定时任务管理
: 예약된 시간에 메시지 보내기邮箱报警
: 오류를 자동으로 감지하여 지정된 이메일 주소로 오류 정보를 전송합니다.数据管理界面
: 데이터베이스 콘텐츠 관리, 메시지 편집 및 전송 서버 구성을 단순화하려면 C:/Program Files/Tencent/WeChat/WeChat.exe
에 WeChat을 설치하세요. 이 위치는 WeChat의 기본 설치 위치입니다.
WeChat이 다른 곳에 설치된 경우 소스 코드 배포를 사용한 다음 서버를 실행하십시오.
http://127.0.0.1:8000/admin/wechat_app/wechatconfig/1/change/
방문하고, 사용자 이름은admin
, 비밀번호는tykWyr-bepqu6-fafvym
이며, WeChat 설치 위치를 수동으로 수정하세요.
Windows의 경로 구분 기호는
이지만 Python에서는
는 이스케이프 문자이므로
/
로 바꿔야 합니다. 예를 들어
Windows资源管理器复制出来文件路径是:`C:Program FilesTencentWeChatWeChat.exe`
但是在后台中需要写成:`C:/Program Files/Tencent/WeChat/WeChat.exe
저장 후
pyinstaller YuYuWechatV2_Server.spec
실행하여 서버를 EXE로 다시 컴파일한 다음 서버에 배포할 수 있습니다.
릴리스 인터페이스에서 최신 버전을 찾아 YuYuWechatV2_Server.exe
및 YuYuWechatV2_Server_run.bat
다운로드하세요.
두 파일을 동일한 디렉터리에 배치하고 YuYuWechatV2_Server_run.bat
두 번 클릭하여 실행합니다. (기본 포트는 8000입니다. 충돌이 있는 경우 bat 파일을 수정하여 포트를 지정하세요.)
YuYuWechatV2_Server
디렉토리로 CD를 이동하세요.
종속성 설치 pip install -r requirements.txt
python manage.py runserver 0.0.0.0:8000
실행
이전 단계에서 서버를 설치하고 실행한 후 간단한 명령을 사용하여 서버가 성공적으로 실행되는지 테스트할 수 있습니다.
터미널 열기(powershell):
curl http://127.0.0.1:8000/wechat/ping
정상적으로는 돌아오겠죠
StatusCode : 200
StatusDescription : OK
Content : { " status " : " pong " }
RawContent : HTTP/1.1 200 OK
Vary: origin
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: same-origin
Cross-Origin-Opener-Policy: same-origin
Content-Length: 18
Content-Type: applicat...
Forms : {}
Headers : {[Vary, origin], [X-Frame-Options, DENY], [X-Content-Type-Options, nosniff], [Referrer-Policy, same
-o rigin]...}
Images : {}
InputFields : {}
Links : {}
Links : {} ParsedHtml : System.__ComObject RawContentLength : 18
$jsonData = ' {"name": "文件传输助手", "text": "hi"} '
Invoke-WebRequest -Uri http://127.0.0.1:8000/wechat/send_message/ -Method Post -Headers @{ " Content-Type " = " application/json " } -Body $jsonData -ContentType " application/json; charset=utf-8 "
이 명령은 파일 전송 도우미에게 hi
메시지를 보냅니다.
터미널 열기:
curl -X GET http://替换成服务器的ip地址:8000/wechat/ping/
curl -X POST http://替换成服务器的ip地址:8000/wechat/send_message/ -H " Content-Type: application/json " -d ' {"name": "文件传输助手", "text": "hi"} '
YuYuWechatV2_Server에는 GUI 인터페이스가 필요하므로 Windows가 화면을 잠그지 않는지 확인해야 합니다.
win+r运行命令
gpedit.msc
x86 및 arm용 도커 이미지를 컴파일했습니다. Windows/mac/Linux의 x86 및 arm 아키텍처를 모두 실행할 수 있습니다.
docker-compose.yml
파일을 다운로드하세요.postgres_data
폴더를 만듭니다.docker-compose up
실행 docker-compose.yml
파일에서 수정해야 합니다. - CSRF_TRUSTED_ORIGINS=https://localhost,https://yourdomain.com # 定义CSRF信任域
. 그렇지 않으면 CSRF 문제가 발생합니다.
이 도커 파일은 세 개의 이미지를 가져옵니다.
`mona233/yuyuwechatv2_client:latest`
`redis:latest`,因为定时任务的celery需要一个消息队列,我默认使用redis,端口为6379
`postgres:latest`,因为客户端需要一个数据库,我默认使用postgres,端口为5432
yuyuwechatv2_client.tar.gz
찾을 수 있습니다. 이는 컴파일된 Docker 이미지입니다. 데이터베이스 구조를 사용자 정의하고 기능을 추가하려면 소스 코드에서 실행할 수 있습니다.
tykWyr-bepqu6-fafvym
입니다. Django 설정에서 수동으로 수정할 수도 있습니다.YuYuWechatV2_Client
디렉토리로 CD 이동pip install -r requirements.txt
python manage.py runserver 127.0.0.1:7500 --insecure
실행합니다. YuYuWechatV2_Client/YuYuWechatV2_Client/settings.py
파일에서 수정해야 합니다. CSRF_TRUSTED_ORIGINS = os.environ.get('CSRF_TRUSTED_ORIGINS', 'https://localhost').split(',')
그렇지 않으면 csrf 문제가 발생합니다.
127.0.0.1:7500
입력하세요. 첫 번째는 로그인 인터페이스입니다. 수동으로 슈퍼 유저를 생성하고 새 터미널을 열어야 합니다.
도커 컨테이너를 입력하세요.
docker exec -it yuyuwechatv2_client bash
디렉토리 마운트
cd /app
슈퍼유저 생성(사용자와 비밀번호를 직접 설정해주세요)
python manage.py createsuperuser
그런 다음 로그인 인터페이스에 사용자 이름과 비밀번호를 입력하여 로그인하세요.
192.168.50.1:8000
를 입력한 후 클릭하여 서버 연결 여부를 테스트합니다. 접속 후 서버 IP 저장을 클릭하면 데이터베이스에 영구 저장됩니다. 다음번에는 서버 IP를 구성할 필요가 없습니다.启动定时任务
예약된 전송 작업과 이메일 알람 기능을 시작합니다.다른 기능의 경우 사이드바를 클릭하면 해당 인터페이스로 이동합니다. 프런트엔드 웹 페이지에는 데이터베이스에 대한 보기 및 전송 작업만 포함되며, 메시지 내용은 백그라운드 관리 인터페이스에서 수행되어야 합니다. , 데이터 보안을 보장합니다.
127.0.0.1:7500/admin
입력하세요. client_app에는 클라이언트 데이터가 있으며 다음 데이터 테이블을 볼 수 있습니다.
Messages
: 발송 메시지 관리를 위한 데이터 테이블Scheduled messages
: 예약 작업 관리를 위한 데이터 테이블Server configs
: 서버 구성Wechat users
: WeChat 사용자 데이터 테이블Email settingss
: 이메일 설정Logs
: 로그 데이터 테이블Error logs
: 오류 감지 데이터 테이블 Username
: 위챗 친구 이름 또는 댓글 이름, 검색 결과의 첫 번째 순위에 있어야 함 ( 필수 )Wechatid
: 위챗ID ( 선택 )Date added
: 친구가 추가된 날짜 ( 필수 아님 )Group:
: 친구 그룹. 프런트엔드 웹페이지에서는 그룹 관리를 용이하게 하기 위해 그룹에 따라 친구를 필터링할 수 있습니다( 선택 사항 ). Is active
: 이 메시지가 활성화되었는지 여부입니다. 활성화 후 정기적으로 전송됩니다. 기본값은 활성화입니다.User
: 이전 단계에서 추가한 위챗 사용자를 선택하세요. ( 필수 )Text
: 발송된 메시지 내용 ( 필수 )Cron expression
: cron 표현식, 정기적으로 보내는 시간, 형식은 * * * * *
이며 각각分时日月周
나타냅니다( 필수 ).Execution count:
메시지가 실행된 횟수입니다. 0은 실행이 없음을 의미하며 0이 될 때까지 각 실행 후 1씩 감소하므로 메시지가 전송되는 횟수를 제어할 수 있습니다( 수는 필요함). 수동으로 설정 )Execution skip
: 메시지 건너뛰기 횟수, 기본값은 0입니다. 1로 설정하면 작업이 다음번에 실행되지 않고 2로 설정되면 작업이 두 번 건너뛰는 식 으로 예약된 메시지 전송 시작을 제어할 수 있습니다. cron表达式
과消息的执行次数
및消息的跳过次数
통해 언제든지 메시지를 시작하고 종료할 수 있으며, 언제든지 메시지를 보낼 수 있으며 메시지를 루프로 보낼 수 있습니다. .
cron表达式
과 관련하여 이 프로그램은 5세그먼트 cron 표현식으로, 7세그먼트 cron 표현식과 혼동하지 마십시오. 인터넷이나 ChatGPT에 몇 가지 예가 있습니다.
* * * * *:每分钟执行一次
0 * * * *:每小时执行一次
0 0 * * *:每天执行一次
0 0 * * 1:每周一执行一次
*/10 * * * * # 每10分钟执行一次
0 0 */2 * * # 每隔一天午夜12点执行
0 0 * * 1 # 每周一午夜12点执行
0 0 1 * * # 每月1日午夜12点执行
이메일 알람 기능을 사용하면 오류 발생 시 자동으로 지정된 메일함으로 이메일이 전송되어 적시에 오류를 처리할 수 있습니다.
홈페이지에서 이메일 구성을 클릭하면 백엔드로 이동합니다.
여기서는 163 메일함을 사용하는 것을 권장합니다. 메일함의 세부 구성은 다음과 같습니다. (163 메일함을 사용하는 경우 처음 3개 항목은 변경할 필요가 없습니다.)
Email host
: smtp 주소Email port
: smtp 포트Email security
: 암호화 방식 선택Email host user
: 이메일 계정Email host password
: 이메일 비밀번호 (보통 인증코드이므로 직접 신청해주세요)Default from email:
이메일을 보내기 위한 이메일 주소. 일반적으로 Email host user
와 동일합니다.Recipient list:
이메일을 수신할 이메일 주소입니다. 여러 항목을 쉼표로 구분하여 입력할 수 있습니다. ScheduledMessage를 작성한 후 동시에 MessageCheck를 생성해야 하는 경우가 있습니다. 이는 매우 일반적인 시나리오이므로 ScheduledMessage에서 MessageCheck를 쉽게 생성할 수 있도록 마이그레이터를 작성했습니다.
YuYuWechatV2_Client
로 전환합니다.python manage.py generate_message_checks
실행하세요.기본적으로 이 마이그레이션 프로그램은 다음 규칙에 따라 ScheduledMessage 및 MessageCheck를 생성합니다.
is_active=scheduled_message.is_active, # 保持与 ScheduledMessage 一致的激活状态
user=scheduled_message.user, # 关联的用户与 ScheduledMessage 相同
keyword="", # keyword 留空
cron_expression=cron_expression_day_after, # 设置为第二天 15:00 的 cron 表达式
message_count=1, # 默认仅检查一条消息
report_on_found=False # 默认不报告找到的关键词
생성 규칙을 사용자 정의하려면 YuYuWechatV2_Client/client_app/management/commands/generate_message_checks.py
함수를 수정하면 됩니다.
WeChat에서 보내는 메시지는 일반적으로 매우 중요합니다. YuYuWechat은 메시지 전송에 문제가 없도록 다양한 수단을 사용하여 시스템의 신뢰성을 보장하지만 오류가 있는 경우 여전히 오류가 발생할 수 있습니다. 문제 제기를 환영합니다.
오류는 이론적으로 불가피하므로 오류 감지가 중요합니다.
테스트는 코드가 예상대로 실행되는지 확인하는 중요한 수단입니다. YuYuWechat은 GitHub 작업을 통해 자동화된 테스트를 수행합니다. 자세한 테스트 샘플은 .github
폴더를 참조하세요.
easyChat YuYuWechatV2_Server의 핵심은 easyChat입니다. 지원해주세요
소프트웨어 유지 관리에는 일정 비용이 필요합니다. 이 소프트웨어가 도움이 된다고 생각하시면 작성자에게 커피 한 잔의 팁을 제공해 주시기 바랍니다.
YuYuWechat은 완전히 무료입니다. 기부는 작성자가 소프트웨어를 계속 개발하고 유지하도록 지원하기 위한 것일 뿐이며 필수는 아닙니다.
해당 코드는 UIAutomation 기술에 대한 커뮤니케이션 및 학습에만 사용되며, 실제 제작 프로젝트에서는 사용을 금지합니다. 불법적이고 상업적인 목적으로 사용하지 마세요! 이로 인해 법적 분쟁이 발생하더라도 작성자는 아무런 관련이 없습니다!