Dies ist eine einfache Version des WeChat-Roboters, die mit AppleScript und der Mac-Version des WeChat-Clients erstellt wurde. Dieser Roboter entstand aus der Tatsache, dass ich einen ChatBot erstellen wollte, der mir dabei helfen sollte, Verbrauchs-, Ernährungs-, Trainings- und andere Daten aufzuzeichnen und den Inhalt von WeChat-Artikeln zu öffentlichen Konten zusammenzufassen. Derzeit ist Wechaty die gängige Lösung für die Implementierung von ChatBot mit persönlichem WeChat. Allerdings ist die kostenlose Webversion oder UOS-Version nicht stabil genug (was bedeutet, dass sie oft aus unerklärlichen Gründen offline geschaltet wird). und funktionsreich. Sie müssen zusätzliche Goldmünzen ausgeben, um Token zu kaufen. Nach einigen kleinen Versuchen habe ich diesen WeChat-Roboter implementiert, der langsam ist, nur wenige Funktionen hat, aber stabil genug ist ( ich habe mich für die Mac-Version des WeChat-Clients entschieden, da ich nur Mac-Geräte habe ).
Dieser Roboter wird hauptsächlich mit AppleScript vervollständigt, ergänzt durch etwas Python-Code. Da die mit AppleScript gelieferte Mausklickoperation nicht auf dem WeChat-Client verwendet werden kann, wird eine zusätzliche Python-Bibliothek verwendet, um die Klickoperation zu implementieren. Daher benötigen Sie zunächst einen Python3-Interpreter und installieren PyUserInput:
pip3 install PyUserInput
Wenn Sie andere Lösungen zur Simulation von Mausklicks haben, können Sie natürlich auch Ihre eigenen verwenden (ich habe erst festgestellt, dass PyUserInput veraltet ist, als ich diese README-Datei geschrieben habe).
Als nächstes müssen Sie einige Konfigurationen in wemac .applescript
wie folgt ändern:
mouseclick.py
abgelegt wird;Nachdem Sie die oben genannten Variablen festgelegt haben, können Sie versuchen, das Skript einmal auszuführen. Stellen Sie vor der Ausführung sicher, dass Sie bei der Mac-Version von WeChat angemeldet sind . Führen Sie das Skript aus und Sie werden feststellen, dass AppleScript den Ziel-Chat automatisch findet, auf das Chat-Fenster klickt und mit dem Löschen des neuesten Chat-Datensatzes beginnt . Ja, dieses AppleScript löscht den Chat-Datensatz Es wurde kein Ort zum Aufzeichnen jeder Nachricht gefunden. Sie können ein wiederholtes Antworten nur vermeiden, indem Sie die Nachricht löschen. Wenn sich die Nachricht im Roboter befindet, ist die Ausführung von AppleScript beendet Dass eine AppleScript-Ausführung nur eine Nachricht verarbeitet .
Wie kann man den Roboter also am Laufen halten? Eine praktikable Lösung besteht darin, eine run.sh
zu schreiben und darin eine Endlosschleife zu schreiben, um wemac .applescript
kontinuierlich auszuführen (tatsächlich mache ich das selbst).
Wenn Sie den Antwortinhalt anpassen möchten, z. B. eine Verbindung zu einem großen Sprachmodell, können Sie Ihre eigene Antwortlogik im Kommentar „Message Processing Logic“ in Zeile 270 von wemac .applescript
Da AppleScript selbst über begrenzte Funktionen verfügt, ist dies möglich Verwenden Sie die Shell, um andere Sprachen wie Python zu verbinden. Sie können ein Python-Skript aufrufen, um den Antwortinhalt wie folgt anzupassen:
set replyMessage to do shell script "python3 your_script.py " & (my escaped(question))
Die Standardausgabe (stdout) der ausgeführten Shell wird replyMessage
zugewiesen und dann vom Roboter als Antwort gesendet.
Beim Spleißen von Shell-Befehlen können Sie die escaped
-Funktion verwenden, um Parameter zu maskieren und Injektionsangriffe zu vermeiden.
Zu diesem Zeitpunkt wird ein einfacher Chatbot ausgeführt. Während des Vorgangs können einige Fehler auftreten, die Elemente nicht finden können. Ignorieren Sie diese jedoch im Allgemeinen und führen Sie AppleScript erneut aus.
run.sh
hinzufügen, um verschiedene Chats zu verwalten, aber dies verlangsamt die Ausführungsgeschwindigkeit.Der Vorteil ist jedoch, dass es stabil genug ist und grundsätzlich ewig laufen kann, solange man sich anmeldet. Theoretisch wird die Verwendung von AppleScript zur Simulation von Klicks von WeChat nicht erkannt und führt zu Kontosperrungen.
Die verwendete Mac-WeChat-Clientversion ist Version. 3.8.6 (28078)
.