เครื่องมือขนาดเล็กที่ช่วยให้ WeChat ส่งข้อความเป็นวงสม่ำเสมอ (ใช้งานนิพจน์ cron ได้แม่นยำจนถึงนาทีต่อนาที) และส่งข้อความเป็นชุด นอกจากนี้ยังมีอินเทอร์เฟซที่เรียบง่ายและใช้งานง่ายซึ่งสามารถนำไปใช้กับแพลตฟอร์มใดก็ได้
✅การส่งข้อความกลุ่ม: ส่งข้อความต่างๆ ถึงเพื่อนหลายคนพร้อมกัน
✅ส่งข้อความอัตโนมัติ: ตรวจสอบเวลาโดยอัตโนมัติและส่งข้อความในช่วงเวลาที่เกี่ยวข้องหรือไม่ (ขึ้นอยู่กับนิพจน์ cron แม่นยำถึงนาที)
✅ส่งข้อความแบบวนซ้ำ: นิพจน์ cron สามารถตั้งค่างานวนซ้ำได้
✅ตรวจสอบบันทึกการแชทเป็นประจำและรับการเตือนตามผลการทดสอบหรือไม่
✅การรับประกันความน่าเชื่อถือ: การบันทึกและการตรวจจับข้อผิดพลาดอัตโนมัติสามารถรับประกันได้ว่างานที่กำหนดเวลาไว้จะได้รับการดำเนินการโดยไม่พลาดจังหวะใช่หรือไม่
✅การป้องกันการตรวจสอบสิทธิ์การเข้าสู่ระบบ: การป้องกันการเข้าสู่ระบบเพื่อให้มั่นใจในความปลอดภัยของข้อมูล
✅ รองรับแพลตฟอร์มเต็มรูปแบบ ง่ายต่อการปรับใช้บนเซิร์ฟเวอร์ เซิร์ฟเวอร์ถูกปรับใช้บนแพลตฟอร์ม win เพื่อรับคำขอของลูกค้า และลูกค้าสามารถปรับใช้กับแพลตฟอร์มใดก็ได้?
โปรเจ็กต์นี้แบ่งออกเป็น 2 ส่วน เซิร์ฟเวอร์และไคลเอนต์:
เซิร์ฟเวอร์นี้เป็นเซิร์ฟเวอร์ขนาดเล็ก ติดตั้งบน win ร่วมกับ WeChat
เซิร์ฟเวอร์ถูกแยกออกจากไคลเอนต์โดยสมบูรณ์และยอมรับคำขอ http เพื่อทำให้การดำเนินงาน WeChat เป็นแบบอัตโนมัติ คุณยังสามารถเขียนไคลเอนต์ด้วยตัวเองเพื่อเรียกใช้อินเทอร์เฟซของเซิร์ฟเวอร์
wechat/ping
: ตรวจสอบว่าเซิร์ฟเวอร์ทำงานตามปกติหรือไม่ ให้ส่งคืน 'status': 'pong'
wechat/send_message
: ส่งข้อความ ยอมรับ name
ข้อมูลและ text
ในรูปแบบ json และดำเนินการอัตโนมัติบน WeChatwechat/check_wechat_status
: ตรวจสอบว่า WeChat ทำงานตามปกติหรือไม่wechat/get_dialogs
: รับประวัติการแชทwechat/get_dialogs_by_time_blocks
: รับบันทึกการแชทตามช่วงเวลาและส่งคืนรายการที่ซ้อนกันwechat/send_file
: ส่งไฟล์เซิร์ฟเวอร์มีคิวข้อความและล็อค mutex คุณเพียงแค่ต้องส่งข้อความไปยังเซิร์ฟเวอร์ และเซิร์ฟเวอร์จะประมวลผลคิวข้อความโดยอัตโนมัติเพื่อให้แน่ใจว่าข้อความจะถูกส่งตามลำดับ ดังนั้นคุณจึงสามารถปรับใช้ไคลเอนต์หลายตัวเพื่อส่งข้อความถึง เซิร์ฟเวอร์เดียวกัน
ไคลเอนต์เป็นส่วนหน้าแบบน้ำหนักเบาที่สามารถทำงานบนแพลตฟอร์มใดก็ได้และส่งข้อความไปยังเซิร์ฟเวอร์ผ่านการร้องขอเครือข่าย
首页
: ภาพรวมคุณสมบัติ日志
: ตรวจสอบบันทึกการเรียกใช้ฟังก์ชันไคลเอ็นต์เพื่ออำนวยความสะดวกในการดีบักและการตรวจจับข้อผิดพลาด ซึ่งจะไม่ล้มเหลวภายใต้สถานการณ์ปกติ บ่งชี้ว่ามีปัญหากับการเรียกใช้ฟังก์ชัน . ต้องให้ความสนใจ错误检测
: ตรวจสอบว่าฟังก์ชันต่างๆ ของไคลเอ็นต์เป็นปกติหรือไม่ และงานที่กำหนดเวลาไว้หายไปหรือไม่发送消息管理
: ส่งข้อความเป็นชุด定时任务管理
: การส่งข้อความตามเวลาที่กำหนด邮箱报警
: ตรวจจับข้อผิดพลาดโดยอัตโนมัติและส่งข้อมูลข้อผิดพลาดไปยังที่อยู่อีเมลที่กำหนด数据管理界面
: จัดการเนื้อหาฐานข้อมูล แก้ไข และส่งข้อความ เพื่อให้การกำหนดค่าเซิร์ฟเวอร์ง่ายขึ้น โปรดติดตั้ง WeChat ใน C:/Program Files/Tencent/WeChat/WeChat.exe
ตำแหน่งนี้เป็นตำแหน่งการติดตั้งเริ่มต้นของ 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 เพื่อระบุพอร์ต)
cd ไปยังไดเร็กทอรี YuYuWechatV2_Server
ติดตั้งการพึ่งพา 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
ไปยัง File Transfer Assistant
เปิดเทอร์มินัล:
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 แล้ว ทั้งสถาปัตยกรรม x86 และ arm ของ Windows/mac/Linux สามารถทำงานได้
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
ได้ในอินเทอร์เฟซ release นี่คืออิมเมจ docker ที่คอมไพล์แล้ว เพียงนำเข้าไปยัง docker ภายในเครื่อง หากคุณต้องการปรับแต่งโครงสร้างฐานข้อมูลและเพิ่มฟังก์ชันการทำงาน คุณสามารถเรียกใช้ได้จากซอร์สโค้ด
tykWyr-bepqu6-fafvym
คุณยังสามารถแก้ไขได้ด้วยตนเองในการตั้งค่า DjangoYuYuWechatV2_Client
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
: ตารางข้อมูลผู้ใช้ WeChatEmail settingss
: การตั้งค่าอีเมลLogs
: ตารางข้อมูลบันทึกError logs
: ตารางข้อมูลการตรวจจับข้อผิดพลาด Username
: ชื่อเพื่อน WeChat หรือชื่อหมายเหตุ จะต้องอยู่ในอันดับแรกในผลการค้นหา ( จำเป็น )Wechatid
: WeChat ID ( ตัวเลือกเสริม )Date added
: วันที่เพื่อนถูกเพิ่ม ( ไม่จำเป็น )Group:
: กลุ่มเพื่อน หน้าเว็บสามารถกรองเพื่อนตามกลุ่มเพื่ออำนวยความสะดวกในการจัดการกลุ่ม ( ไม่จำเป็น ) Is active
: ไม่ว่าข้อความนี้จะถูกเปิดใช้งานหรือไม่ ข้อความจะถูกส่งเป็นประจำหลังจากการเปิดใช้งานUser
: เลือกผู้ใช้ WeChat ที่เพิ่มในขั้นตอนก่อนหน้า ( จำเป็น )Text
: เนื้อหาของข้อความที่ส่ง ( จำเป็น )Cron expression
: นิพจน์ cron เวลาที่จะส่งเป็นประจำ รูปแบบคือ * * * * *
แทน分时日月周
ตามลำดับ ( จำเป็น )Execution count:
จำนวนครั้งที่ดำเนินการข้อความ 0 หมายถึงไม่มีการดำเนินการ และจะลดลงทีละครั้งหลังจากดำเนินการแต่ละครั้งจนเป็น 0 เพื่อให้สามารถควบคุมจำนวนครั้งที่ส่งข้อความได้ ( จำนวนที่ต้องการ ที่จะตั้งค่าด้วยตนเอง )Execution skip
: จำนวนข้อความที่ข้าม ค่าเริ่มต้นคือ 0 หากตั้งค่าเป็น 1 งานจะไม่ถูกดำเนินการในครั้งถัดไป แต่เฉพาะในครั้งต่อไป หากตั้งค่าเป็น 2 งานจะถูกข้ามสองครั้ง และต่อๆ ไป ซึ่งสามารถควบคุมการเริ่มต้นการส่งข้อความตามกำหนดเวลา ( ทางเลือก ) ด้วย cron表达式
และ消息的执行次数
และ消息的跳过次数
สามารถเริ่มต้นและสิ้นสุดได้ตลอดเวลา สามารถส่งข้อความได้ตลอดเวลา และสามารถส่งข้อความแบบวนซ้ำได้
เกี่ยวกับ cron表达式
โปรแกรมนี้เป็นนิพจน์ cron 5 ส่วน ซึ่งมีความแม่นยำถึงนาทีต่อนาที
* * * * *:每分钟执行一次
0 * * * *:每小时执行一次
0 0 * * *:每天执行一次
0 0 * * 1:每周一执行一次
*/10 * * * * # 每10分钟执行一次
0 0 */2 * * # 每隔一天午夜12点执行
0 0 * * 1 # 每周一午夜12点执行
0 0 1 * * # 每月1日午夜12点执行
เมื่อใช้ฟังก์ชันแจ้งเตือนทางอีเมล เมื่อเกิดข้อผิดพลาด อีเมลจะถูกส่งไปยังเมลบ็อกซ์ที่กำหนดโดยอัตโนมัติ เพื่ออำนวยความสะดวกในการจัดการกับข้อผิดพลาดได้ทันท่วงที
คลิกการกำหนดค่าอีเมลในหน้าแรก จากนั้นระบบจะข้ามไปที่แบ็กเอนด์
ขอแนะนำให้ใช้กล่องจดหมาย 163 ที่นี่ ต่อไปนี้คือการกำหนดค่าโดยละเอียดของกล่องจดหมาย (หากคุณใช้กล่องจดหมาย 163 ไม่จำเป็นต้องเปลี่ยนสามรายการแรก)
Email host
: ที่อยู่ smtpEmail port
: พอร์ต smtpEmail security
: เลือกวิธีการเข้ารหัสEmail host user
: บัญชีอีเมลEmail host password
: รหัสผ่านอีเมล (โดยปกติจะเป็นรหัสอนุญาต โปรดสมัครด้วยตนเอง)Default from email:
ที่อยู่อีเมลสำหรับส่งอีเมล โดยทั่วไปจะเหมือนกับ Email host user
Recipient list:
ที่อยู่อีเมลสำหรับรับอีเมล คุณสามารถกรอกได้หลายรายการโดยคั่นด้วยเครื่องหมายจุลภาค หลังจากเขียน ScheduledMessage แล้ว บางครั้งคุณจำเป็นต้องสร้าง MessageCheck ในเวลาเดียวกัน นี่เป็นสถานการณ์ที่พบบ่อยมาก ดังนั้นฉันจึงเขียนโปรแกรมโยกย้ายเพื่ออำนวยความสะดวกในการสร้าง MessageCheck จาก scheduleMessage
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 เท่านั้น ห้ามใช้ในโครงการการผลิตจริง โปรดอย่าใช้เพื่อวัตถุประสงค์ที่ผิดกฎหมายและเชิงพาณิชย์! หากมีข้อพิพาททางกฎหมายเกิดขึ้น ผู้เขียนไม่มีส่วนเกี่ยวข้องกับเรื่องนี้!