Il s'agit d'une version simple du robot WeChat réalisée à l'aide d'AppleScript et de la version Mac du client WeChat. Ce robot est né du fait que je voulais créer un ChatBot pour m'aider à enregistrer des données sur la consommation, l'alimentation, l'exercice et d'autres données, et m'aider à résumer le contenu des articles du compte public WeChat. Actuellement, la solution principale pour implémenter ChatBot à l'aide de WeChat personnel est Wechaty. Cependant, parmi les marionnettes utilisées par Wechaty, la version Web gratuite ou la version UOS n'est pas assez stable (ce qui signifie qu'elle est souvent mise hors ligne de manière inexplicable). et riche en fonctionnalités. Vous devez dépenser des pièces d'or supplémentaires pour acheter des jetons. Ainsi après quelques petites tentatives, j'ai implémenté ce robot WeChat qui est lent, a peu de fonctions, mais est suffisamment stable ( j'ai choisi la version Mac du client WeChat car je n'ai que des appareils Mac ).
Ce robot est principalement réalisé à l'aide d'AppleScript, complété par du code Python. Python est utilisé car l'opération de clic de souris fournie avec AppleScript ne peut pas être utilisée sur le client WeChat, donc une bibliothèque Python supplémentaire est utilisée pour implémenter l'opération de clic. Par conséquent, vous devez d’abord disposer d’un interpréteur Python3 et installer PyUserInput :
pip3 install PyUserInput
Bien sûr, si vous disposez d'autres solutions pour simuler les clics de souris, vous pouvez également utiliser la vôtre (je n'ai découvert que PyUserInput était obsolète lorsque j'ai écrit ce README).
Ensuite, vous devez modifier certaines configurations dans wemac .applescript
comme suit :
mouseclick.py
;Après avoir défini les variables ci-dessus, vous pouvez essayer d'exécuter le script une fois. Avant de l'exécuter, assurez-vous que vous êtes connecté à la version Mac de WeChat . Exécutez le script et vous constaterez qu'AppleScript trouvera automatiquement la discussion cible, cliquera sur la fenêtre de discussion et commencera à supprimer l'enregistrement de discussion le plus récent . Oui, cet AppleScript supprimera l'enregistrement de discussion. aucun endroit pour enregistrer chaque message n'a reçu de réponse, vous ne pouvez éviter les réponses répétées qu'en supprimant le message ; si le message est sur le robot, il répondra alors, l'exécution d'AppleScript est terminée ; Celui-là AppleScript exécution seulement Un message sera traité .
Alors, comment faire fonctionner le robot ? Une solution réalisable consiste à écrire un run.sh
et à y écrire une boucle infinie pour exécuter en continu wemac .applescript
(en fait, je le fais moi-même).
Si vous souhaitez personnaliser le contenu de la réponse, par exemple en vous connectant à un modèle de langage volumineux, vous pouvez ajouter votre propre logique de réponse dans le commentaire « Logique de traitement des messages » à la ligne 270 de wemac .applescript
Étant donné qu'AppleScript lui-même a des capacités limitées, vous pouvez le faire. utilisez le shell pour connecter un autre langage, tel que Python, vous pouvez appeler un script Python pour personnaliser le contenu de la réponse de la manière suivante :
set replyMessage to do shell script "python3 your_script.py " & (my escaped(question))
La sortie standard (stdout) du shell exécuté sera attribuée à replyMessage
, puis envoyée par le robot en réponse.
Lors de l'épissage des commandes shell, vous pouvez utiliser la fonction escaped
pour échapper aux paramètres afin d'éviter les attaques par injection.
À ce stade, un simple chatbot est en cours d'exécution. Au cours du processus, vous pouvez rencontrer des erreurs qui ne permettent pas de localiser les éléments, mais d'une manière générale, ignorez-les et réexécutez AppleScript.
run.sh
en même temps pour gérer différentes discussions, mais cela ralentira la vitesse d'exécution ;Mais l’avantage est qu’il est suffisamment stable et peut fonctionner indéfiniment tant que vous vous connectez. En théorie, l’utilisation d’AppleScript pour simuler des clics ne sera pas détectée par WeChat et entraînera des interdictions de compte.
La version du client Mac WeChat utilisée est Version. 3.8.6 (28078)
.