Allgemeine Einführung
WeChatFerry ist ein Open-Source-WeChat-Roboter-Framework, das vom Entwickler lich0821 auf GitHub erstellt und gepflegt wird. Das Projekt durch die WeChat Hook-Technologie, bietet eine Reihe von leistungsfähigen SDK, so dass Entwickler zu WeChat Funktion mit einer Vielzahl von großen Sprachmodell (wie ChatGPT, Gemini, DeepSeek, ChatGLM, Xunfei Starfire, Tigerbot, etc.) Integration, automatisierte Aufgaben und intelligenten Dialog. Das Kernmodul ist in C++ geschrieben, unterstützt mehrere Client-Sprachen (z.B. Python, Rust, Go, Java, Node.js, C#, etc.) und ist an bestimmte WeChat-Versionen angepasst (unterstützt derzeit 3.9.11.25). Mit seiner Flexibilität und seinen umfangreichen Funktionen hat WeChatFerry 5,5k Sterne und 1,1k Forks erhalten, was es zu einem beliebten Tool für die Entwicklung von WeChat-Robotern macht.
Funktionsliste
- NachrichtenUnterstützt das Senden von Text (mit @), Bildern, Dateien, GIFs und kann Nachrichten abhören und empfangen.
- Integration großer SprachmodelleZugang zu Modellen wie ChatGPT, Gemini, DeepSeek, ChatGLM, Xunfei Starfire, usw. für intelligente Antworten oder Aufgabenbearbeitung.
- Gruppenchat-ManagementUnterstützt Vorgänge wie das Einladen von Gruppenmitgliedern und das Abrufen von Gruppeninformationen.
- Multimedia-VerarbeitungUnterstützung für das Herunterladen von Bildern und Dateien, die Entschlüsselung von Bildern und die Umwandlung von Sprachdateien (Silk) in MP3.
- DatenbankzugriffDaten wie WeChat-Kontakte, Nachrichtensätze usw. können abgefragt werden.
- Verwaltung des AnmeldestatusFunktionen zum Abrufen des QR-Codes für die Anmeldung, zum Überprüfen des Anmeldestatus und zum Abrufen von Kontoinformationen (wxid, Spitzname, Mobiltelefonnummer usw.).
- Mehrsprachiger ClientUnterstützung für die clientseitige Entwicklung in Python, Rust, Go, Java, Node.js, C# und anderen Sprachen.
- Automatisierte AufgabenUnterstützung von Nachrichtenweiterleitung, zeitgesteuerten Aufgaben usw. für Kundendienst, Ausbildung und andere Szenarien.
Hilfe verwenden
Einbauverfahren
Die Verwendung von WeChatFerry ist in zwei Teile unterteilt: Kompilierung des Kernmoduls (für Entwickler) und clientseitige Installation (für normale Benutzer). Nachfolgend finden Sie die detaillierten Schritte:
1. die Client-Installation (z. B. in Python)
- Installieren der Python-UmgebungPython 3.10 wird empfohlen, laden Sie es von python.org herunter und installieren Sie es, und stellen Sie sicher, dass die
pip
Verfügbar. - Installieren Sie das wcferry-Paket: Öffnen Sie die Befehlszeile und führen Sie aus:
pip install --upgrade wcferry
- Überprüfen der Installation: Ausführen in Python
import wcferry
Wenn kein Fehler gemeldet wird, ist der Vorgang erfolgreich.
2. die Kompilierung von Kernmodulen (optional für Entwickler)
- Vorbereiten der Umgebung::
- Installieren Sie Visual Studio 2019 (Community Edition), das C++-Entwicklungskomponenten enthält.
- Installieren Sie Git zum Klonen von Repositories.
- Klon-Lager::
git clone https://github.com/lich0821/WeChatFerry.git cd WeChatFerry
- Kompilieren von Projekten::
- Öffnen mit VS2019
WeChatFerry\WeChatFerry\WeChatFerry.sln
. - Klicken Sie auf "Generate" > "Generate Solution", nachdem Sie die Lösung kompiliert haben, finden Sie sie im Ordner
WeChatFerry\WeChatFerry\Out
Verzeichnis, um diesdk.dll
. - zur Kenntnis nehmenWenn Sie auf
protoc
Fehler 9009, Python-Umgebung oder Konfiguration prüfenprotoc
Umgebungsvariable (erfordert die Installation von protobuf).
- Öffnen mit VS2019
3) WeChat starten und injizieren
- Microsoft vorbereitenInstallieren Sie eine unterstützte Version von WeChat (z. B. 3.9.10.27 oder 3.9.11.25, siehe Releases).
- laufendes Beispiel: Beziehen Sie sich auf den offiziellen Code Loading
sdk.dll
und initialisiert:import ctypes sdk = ctypes.cdll.LoadLibrary("C:/path/to/WeChatFerry/WeChatFerry/Out/sdk.dll") sdk.WxInitSDK(False, 10086) # 初始化,默认端口 10086
- Beenden des SDK: Beenden Sie es, wenn Sie es nicht mehr benötigen.
sdk.WxDestroySDK()
Der Python-Prozess wird heruntergefahren, wenn er bereit ist zu starten und zu beenden.
Hauptfunktionen
Nachrichten
- Textnachricht senden::
from wcferry import Wcf wcf = Wcf() wcf.send_text("你好", "wxid_xxxx") # wxid_xxxx 为目标微信 ID
- Unterstützung @ jemand:
wcf.send_text("你好 @Tom", "roomid_xxxx")
.
- Unterstützung @ jemand:
- eine Nachricht erhalten::
wcf.enable_receiving_msgs() # 开启接收 while True: msg = wcf.get_msg() if msg: print(f"收到: {msg.content}") wcf.disable_receiving_msgs() # 停止接收
Integration großer Sprachmodelle
- Zugang zu ChatGPT Beispiel(Sie müssen den API-Schlüssel selbst konfigurieren):
from wcferry import Wcf import openai wcf = Wcf() openai.api_key = "your_api_key" def chatgpt_reply(msg): response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": msg.content}] ) wcf.send_text(response.choices[0].message.content, msg.sender) wcf.enable_receiving_msgs() while True: msg = wcf.get_msg() if msg: chatgpt_reply(msg)
Multimedia-Verarbeitung
- Bild senden::
wcf.send_image("C:/Pictures/test.jpg", "wxid_xxxx")
- Sprache zu MP3: Verwendung
smc
Modul (Kompilierung erforderlich), setzen Sie die.silk
Dokumentation umgewandelt in.mp3
::from wcferry import smc smc.silk_to_mp3("input.silk", "output.mp3")
Gruppenchat-Management
- Eingeladene Mitglieder::
wcf.invite_room_members("roomid_xxxx", ["wxid_user1", "wxid_user2"])
- Gruppeninformationen abrufen::
room_info = wcf.get_chatroom_info("roomid_xxxx") print(room_info)
Beispiel für den Betriebsablauf
- Rahmenwerk starten: Zusammenstellung
sdk.dll
Wenn Sie ein Python-Skript verwenden möchten, führen Sie das Python-Skript aus, um es zu laden und zu initialisieren. - Bei WeChat anmelden: Umsetzung
wcf.get_login_qrcode()
Holen Sie sich den QR-Code und scannen Sie ihn, um sich anzumelden. - Merkmale der KonfigurationSchreiben von Skripten zum Abhören von Nachrichten, zur automatischen Beantwortung oder zur Gruppenverwaltung.
- Einsatzprüfung: Führen Sie das Skript in der Befehlszeile aus, um zu überprüfen, ob das Verhalten von Microsoft den Erwartungen entspricht.
- Optimierung der FehlersucheWenn etwas schief geht, können Sie ein Debug-Protokoll in VS2019 hinzufügen (z. B.
DbgMsg("Test")
), Fragen der Positionierung.
Mehrsprachige Client-Unterstützung
- Rost: Verwendung wcfrust.
- Weiter: Referenz go_wcf_http.
- JavaSiehe java client beschreibung.
- Node.js: Verwendung wcferry-Knoten.
- C#: Referenz WeChatFerry-CSharp.
- Docker: Verwendung docker_wechat.
caveat
- Die aktuelle Version von WeChat ist 3.9.11.25, was zu einem Injektionsfehler führen kann.
- Das Projekt ist nur für Studien- und Forschungszwecke bestimmt und unterliegt der MIT-Lizenz.
- Mehrfaches Öffnen wird derzeit nicht unterstützt und erfordert die Ausführung einer einzigen Instanz.