Небольшой инструмент, который позволяет WeChat регулярно отправлять сообщения в цикле (с точностью до минуты) и пакетно отправлять сообщения. Он также предоставляет простой и интуитивно понятный интерфейс, который можно развернуть на любой платформе.
✅Групповой обмен сообщениями: отправляйте разные сообщения нескольким друзьям одновременно.
✅Автоматическая отправка сообщений: автоматически проверять время и отправлять сообщения в соответствующий момент (на основе выражения cron, с точностью до минуты)
✅Отправка сообщений в цикле: выражение cron может установить любое задание цикла.
✅Регулярно проверяйте записи чата и получайте напоминания по результатам теста?
✅Гарантия надежности: ведение журнала и автоматическое обнаружение ошибок могут гарантировать, что запланированные задачи будут выполняться без промедления?
✅Защита аутентификации при входе: защита при входе для обеспечения безопасности данных.
✅ Полная поддержка платформы, простота развертывания на сервере, сервер развертывается на платформе win для приема клиентских запросов, а клиент можно развернуть на любой платформе?
Этот проект разделен на 2 части, серверную и клиентскую:
Сервер представляет собой легкий сервер, устанавливаемый на Win вместе с WeChat.
Сервер полностью отделен от клиента и принимает http-запросы для автоматизации операций WeChat. Вы также можете написать клиент для вызова интерфейса сервера.
wechat/ping
: проверьте, работает ли сервер нормально, верните 'status': 'pong'
wechat/send_message
: отправлять сообщения, принимать name
данных и text
в формате json и выполнять автоматические операции в WeChat.wechat/check_wechat_status
: проверьте, нормально ли работает WeChat.wechat/get_dialogs
: Получить историю чата.wechat/get_dialogs_by_time_blocks
: получает записи чата на основе периода времени и возвращает вложенный список.wechat/send_file
: отправить файлНа сервере есть очередь сообщений и блокировка мьютекса. Вам нужно только отправлять сообщения на сервер, и сервер автоматически обрабатывает очередь сообщений, чтобы гарантировать, что сообщения отправляются последовательно, поэтому вы также можете развернуть несколько клиентов для отправки сообщений. тот же сервер.
Клиент представляет собой легкий интерфейс, который может работать на любой платформе и отправляет сообщения на сервер через сетевые запросы.
首页
: Обзор возможностей日志
: проверьте журнал вызова клиентской функции, чтобы облегчить отладку и обнаружение ошибок. При обычных обстоятельствах сбой не происходит. Могут быть пропущенные сообщения, неправильные сообщения и сбои при сохранении данных. , нужно обратить внимание на错误检测
: определение нормальности работы различных функций клиента и отсутствия запланированных задач.发送消息管理
: отправка сообщений пакетами定时任务管理
: отправка сообщений в запланированное время.邮箱报警
: автоматическое обнаружение ошибок и отправка информации об ошибках на указанный адрес электронной почты.数据管理界面
: управляйте содержимым базы данных, редактируйте и отправляйте сообщения. Чтобы упростить настройку сервера, установите 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
является escape-символом, поэтому его необходимо заменить, например, на
/
.
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
Установить зависимости 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 требует графического интерфейса, поэтому вам необходимо убедиться, что 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
в интерфейсе выпуска. Это скомпилированный образ Docker. Просто импортируйте его в локальный Docker. Если вы хотите настроить структуру базы данных и добавить функциональность, вы можете запустить ее из исходного кода.
tykWyr-bepqu6-fafvym
. Вы также можете изменить его вручную в настройках Django.YuYuWechatV2_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 ( необязательно ).Date added
: дата добавления друга ( необязательно ).Group:
Группа друзей. На интерфейсной веб-странице можно фильтровать друзей по группам, чтобы облегчить управление группами ( необязательно ). Is active
: активировано это сообщение или нет. Оно будет отправляться регулярно после активации. По умолчанию активировано.User
: выберите пользователя WeChat, добавленного на предыдущем шаге ( обязательно ).Text
: Содержание отправленного сообщения ( обязательно ).Cron expression
: выражение cron, время регулярной отправки, формат * * * * *
, представляющее分时日月周
соответственно ( обязательно )Execution count:
количество раз выполнения сообщения, 0 означает отсутствие выполнения, и оно будет уменьшаться на единицу после каждого выполнения, пока не станет 0, так что количество раз отправки сообщения можно контролировать ( количество необходимо устанавливается вручную )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, первые три пункта менять не нужно).
Email host
: smtp-адресEmail port
: порт smtpEmail security
: выберите метод шифрования.Email host user
: учетная запись электронной почтыEmail host password
: пароль электронной почты (обычно это код авторизации, пожалуйста, примените его самостоятельно)Default from email:
адрес электронной почты для отправки электронных писем, обычно такой же, как Email host user
Recipient list:
Адрес электронной почты для получения электронных писем. Вы можете заполнить несколько записей, разделенных запятыми. После написания ScheduledMessage иногда необходимо одновременно сгенерировать MessageCheck. Это очень распространенный сценарий, поэтому я написал мигратор, чтобы облегчить создание MessageCheck из ScheduledMessage.
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. Его запрещено использовать в реальных производственных проектах. Не используйте его в незаконных или коммерческих целях. Если в результате возникнут какие-либо юридические споры, то автор тут ни при чем!