WeChat が定期的にループでメッセージを送信したり (cron 式タスクを使用すると分単位で正確に実行できます)、バッチでメッセージを送信したりできる小さなツールです。また、任意のプラットフォームに展開できるシンプルで直感的なインターフェイスも提供します。
✅グループメッセージング: 複数の友達に異なるメッセージを一度に送信します。
✅ メッセージを自動的に送信: 時刻を自動的に確認し、対応する瞬間にメッセージを送信します (cron 式に基づいて、分単位で正確です)。
✅ ループでメッセージを送信: cron 式で任意のループ ジョブを設定できます
✅チャット記録を定期的にチェックし、テスト結果に基づいて通知を受けますか?
✅信頼性の保証: ログ記録と自動エラー検出により、スケジュールされたタスクが隙なく確実に実行されます。
✅ログイン認証保護: データのセキュリティを確保するためのログイン保護
✅ 完全なプラットフォームのサポート、サーバーへの展開が簡単、サーバーはクライアント要求を受け入れるために Win プラットフォームに展開され、クライアントは任意のプラットフォームに展開できます。
このプロジェクトは、サーバーとクライアントの 2 つの部分に分かれています。
サーバーは軽量サーバーであり、WeChat と一緒に win にインストールされます。
サーバーはクライアントから完全に分離されており、HTTP リクエストを受け入れて WeChat 操作を自動化することもできます。サーバー インターフェイスを呼び出すクライアントを自分で作成することもできます。
wechat/ping
: サーバーが正常に動作しているかどうかを確認し、 'status': 'pong'
を返しますwechat/send_message
: メッセージを送信し、json 形式のデータname
とtext
を受け入れ、WeChat 上で自動操作を実行します。wechat/check_wechat_status
: WeChatが正常に実行されているかどうかを確認します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
をダウンロードします。
2 つのファイルを同じディレクトリに配置し、 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 の Docker イメージをコンパイルしました。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 の問題が発生します。
この docker ファイルは 3 つのイメージをプルします。
`mona233/yuyuwechatv2_client:latest`
`redis:latest`,因为定时任务的celery需要一个消息队列,我默认使用redis,端口为6379
`postgres:latest`,因为客户端需要一个数据库,我默认使用postgres,端口为5432
yuyuwechatv2_client.tar.gz
見つけることができます。これは、ローカルの Docker にインポートするだけです。 データベース構造をカスタマイズして機能を追加したい場合は、ソースコードから実行できます。
tykWyr-bepqu6-fafvym
redis および postgres データベースを自分でインストールします。redis のデフォルト ポートは 6379、postgres のデフォルト ポートは 5432、デフォルトの接続パスワードは 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
と入力して、フロントエンド ホームページを開きます1 つ目はログイン インターフェイスです。スーパー ユーザーを手動で作成し、新しいターミナルを開く必要があります。
Dockerコンテナに入る
docker exec -it yuyuwechatv2_client bash
マウントディレクトリ
cd /app
スーパーユーザーを作成します(ユーザーとパスワードは自分で設定してください)
python manage.py createsuperuser
次に、ログイン インターフェイスにユーザー名とパスワードを入力してログインします。
192.168.50.1:8000
など) を入力し、サーバーが接続されているかどうかをテストします。接続後、「サーバー IP を保存」をクリックしてデータベースに永続的に保存します。次回からサーバー IP を設定する必要はありません。启动定时任务
クリックすると、スケジュールされた送信タスクと電子メール アラーム機能が開始されます。他の機能については、サイドバーをクリックして、対応するインターフェイスにジャンプします。フロントエンド Web ページでは、ユーザーとメッセージのコンテンツの表示と送信操作のみをバックグラウンド管理インターフェイスで行う必要があります。 、データのセキュリティを確保します
127.0.0.1:7500/admin
と入力して、バックグラウンド管理インターフェイスに入ります。 client_app はクライアント データです。次のデータ テーブルが表示されます。
Messages
: 送信メッセージ管理用データテーブルScheduled messages
:スケジュールタスク管理用データテーブルServer configs
: サーバー構成Wechat users
: WeChat ユーザー データ テーブルEmail settingss
: メール設定Logs
: ログデータテーブルError logs
:エラー検出データテーブルUsername
: WeChat の友人の名前または発言名、検索結果で最初にランク付けされる必要があります (必須)Wechatid
: WeChat ID (オプション)Date added
: 友達が追加された日 (必須ではありません)Group:
: 友人のグループ。フロントエンド Web ページでは、グループに応じて友人をフィルタリングして、グループ管理を容易にすることができます (オプション)。 Is active
: このメッセージがアクティブ化された後、定期的に送信されます。デフォルトはアクティブ化されています。User
: 前の手順で追加した WeChat ユーザーを選択します (必須)Text
: 送信したメッセージの内容 (必須)Cron expression
: cron 式、定期的に送信する時刻、形式は* * * * *
で、それぞれ分时日月周
を表します (必須)Execution count:
メッセージが実行される回数。0 は実行なしを意味し、実行ごとに 0 になるまで 1 ずつ減らされるため、メッセージの送信回数を制御できます (数値は必要ありません)手動で設定します)Execution skip
: メッセージのスキップ数。デフォルトは 0 です。 1 に設定すると、タスクは次回実行されません。2 に設定すると、タスクは 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 です。サポートしてください
ソフトウェアのメンテナンスには一定の費用がかかります。このソフトウェアが役に立ったと思われる場合は、作者にコーヒー 1 杯のチップを送ってください☕️
YuYuWechat は完全に無料です。寄付は作者がソフトウェアの開発と保守を継続できるようにサポートするためにのみ行われ、強制的なものではありません。
このコードは、コミュニケーションと UIAutomation テクノロジーの学習にのみ使用されます。実際の制作プロジェクトでの使用は禁止されています。違法な商業目的で使用しないでください。その結果、法的な紛争が生じたとしても、作者は一切関与しません。