Englische Version
itchat ist eine Open-Source-Schnittstelle für persönliche WeChat-Konten. Es war noch nie einfacher, WeChat mit Python aufzurufen.
Mit weniger als dreißig Codezeilen können Sie einen WeChat-Bot fertigstellen, der alle Informationen verarbeiten kann.
Natürlich ist die Verwendung dieser API weit mehr als nur ein Roboter, und es warten noch weitere Funktionen darauf, von Ihnen entdeckt zu werden, wie zum Beispiel diese.
Diese Schnittstelle hat eine ähnliche Betriebsmethode wie die öffentliche Kontoschnittstelle itchatmp, und Sie können lernen, zwei Tools gleichzeitig zu beherrschen.
Heutzutage ist WeChat ein wichtiger Bestandteil der persönlichen sozialen Interaktion geworden. Ich hoffe, dass dieses Projekt Ihnen dabei helfen kann, Ihr persönliches WeChat-Konto zu erweitern und Ihr Leben zu erleichtern.
Sie können itchat mit diesem Befehl installieren:
pip install itchat
Wenn Sie mit itchat eine Nachricht an den Dateiübertragungsassistenten senden möchten, gehen Sie einfach wie folgt vor:
import itchat
itchat . auto_login ()
itchat . send ( 'Hello, filehelper' , toUserName = 'filehelper' )
Wenn Sie auf eine an Sie selbst gesendete Textnachricht antworten möchten, gehen Sie einfach wie folgt vor:
import itchat
@ itchat . msg_register ( itchat . content . TEXT )
def text_reply ( msg ):
return msg . text
itchat . auto_login ()
itchat . run ()
Einige erweiterte Anwendungen finden Sie unten im Quellcode und in den erweiterten Anwendungen des Open-Source-Roboters. Alternativ können Sie auch die Dokumentation lesen.
Dies ist ein kleiner Open-Source-Roboter, der auf diesem Projekt basiert. Es ist besser, davon zu hören, als ihn zu sehen. Wenn Sie interessiert sind, können Sie ihn ausprobieren.
Da die Anzahl der Freunde zu schnell wächst, ist die Demonstration der Funktion zum automatischen Bestehen der Freundesüberprüfung vorübergehend geschlossen.
Durch Drucken des Benutzers von itchat und der Parameter der Registrierungsnachricht können Sie feststellen, dass diese Werte alle Wörterbücher sind.
Tatsächlich hat itchat jedoch sorgfältig entsprechende Nachrichten, Benutzer, Gruppenchats und öffentliche Konten erstellt.
Auf alle seine Schlüsselwerte kann auf diese Weise zugegriffen werden:
@ itchat . msg_register ( TEXT )
def _ ( msg ):
# equals to print(msg['FromUserName'])
print ( msg . fromUserName )
Der Attributname ist der kleingeschriebene erste Buchstabe des Schlüsselwerts.
author = itchat . search_friends ( nickName = 'LittleCoder' )[ 0 ]
author . send ( 'greeting, littlecoder!' )
Über den folgenden Code kann WeChat bereits verschiedene tägliche Informationen abrufen und darauf antworten.
import itchat , time
from itchat . content import *
@ itchat . msg_register ([ TEXT , MAP , CARD , NOTE , SHARING ])
def text_reply ( msg ):
msg . user . send ( '%s: %s' % ( msg . type , msg . text ))
@ itchat . msg_register ([ PICTURE , RECORDING , ATTACHMENT , VIDEO ])
def download_files ( msg ):
msg . download ( msg . fileName )
typeSymbol = {
PICTURE : 'img' ,
VIDEO : 'vid' , }. get ( msg . type , 'fil' )
return '@%s@%s' % ( typeSymbol , msg . fileName )
@ itchat . msg_register ( FRIENDS )
def add_friend ( msg ):
msg . user . verify ()
msg . user . send ( 'Nice to meet you!' )
@ itchat . msg_register ( TEXT , isGroupChat = True )
def text_reply ( msg ):
if msg . isAt :
msg . user . send ( u'@%s u2005 I received: %s' % (
msg . actualNickName , msg . text ))
itchat . auto_login ( True )
itchat . run ( True )
Sie können den QR-Code beim Anmelden über die Befehlszeile mit dem folgenden Befehl anzeigen:
itchat . auto_login ( enableCmdQR = True )
Einige Systeme verfügen möglicherweise über unterschiedliche Zeichenbreiten, die durch Zuweisen von enableCmdQR zu einem bestimmten Vielfachen angepasst werden können:
# 如部分的linux系统,块字符的宽度为一个字符(正常应为两字符),故赋值为2
itchat . auto_login ( enableCmdQR = 2 )
Die Standardhintergrundfarbe der Konsole ist dunkel (schwarz). Wenn die Hintergrundfarbe hell (weiß) ist, kann enableCmdQR ein negativer Wert zugewiesen werden:
itchat . auto_login ( enableCmdQR = - 1 )
Melden Sie sich mit dem folgenden Befehl an. Auch wenn das Programm geschlossen ist, können Sie es innerhalb einer bestimmten Zeit erneut öffnen, ohne den Code erneut zu scannen.
itchat . auto_login ( hotReload = True )
Verwenden Sie die Methode search_friends
, um nach Benutzern zu suchen. Es gibt vier Suchmethoden:
UserName
abname
entsprechenDrei oder vier davon können zusammen verwendet werden. Das Folgende ist ein Beispielprogramm:
# 获取自己的用户信息,返回自己的属性字典
itchat . search_friends ()
# 获取特定UserName的用户信息
itchat . search_friends ( userName = '@abcdefg1234567' )
# 获取任何一项等于name键值的用户
itchat . search_friends ( name = 'littlecodersh' )
# 获取分别对应相应键值的用户
itchat . search_friends ( wechatAccount = 'littlecodersh' )
# 三、四项功能可以一同使用
itchat . search_friends ( name = 'LittleCoder机器人' , wechatAccount = 'littlecodersh' )
Die Erfassung und Suche von offiziellen Accounts und Gruppenchats wird in der Dokumentation näher beschrieben.
Die Methode zum Herunterladen von Anhängen von Itchat ist im Textschlüssel von msg gespeichert.
Der Dateiname der gesendeten Datei (der vom Bild vorgegebene Standarddateiname) wird im FileName-Schlüssel von msg gespeichert.
Die Download-Methode akzeptiert ein verfügbares Positionsargument (einschließlich des Dateinamens) und speichert die Datei entsprechend.
@ itchat . msg_register ([ PICTURE , RECORDING , ATTACHMENT , VIDEO ])
def download_files ( msg ):
msg . download ( msg . fileName )
itchat . send ( '@%s@%s' % (
'img' if msg [ 'Type' ] == 'Picture' else 'fil' , msg [ 'FileName' ]),
msg [ 'FromUserName' ])
return '%s received' % msg [ 'Type' ]
Wenn Sie es nicht lokal herunterladen müssen und nur die Binärzeichenfolge zur weiteren Verarbeitung lesen möchten, können Sie keine Parameter übergeben. Die Methode gibt die Binärzeichenfolge des Bildes zurück.
@ itchat . msg_register ([ PICTURE , RECORDING , ATTACHMENT , VIDEO ])
def download_files ( msg ):
with open ( msg . fileName , 'wb' ) as f :
f . write ( msg . download ())
Verwenden Sie den folgenden Befehl, um mehrere Öffnungsvorgänge abzuschließen:
import itchat
newInstance = itchat . new_instance ()
newInstance . auto_login ( hotReload = True , statusStorageDir = 'newInstance.pkl' )
@ newInstance . msg_register ( itchat . content . TEXT )
def reply ( msg ):
return msg . text
newInstance . run ()
Die Methode nach Abschluss der Anmeldung muss in loginCallback
zugewiesen werden.
Die Methode nach dem Exit muss in exitCallback
zugewiesen werden.
import time
import itchat
def lc ():
print ( 'finish login' )
def ec ():
print ( 'exit' )
itchat . auto_login ( loginCallback = lc , exitCallback = ec )
time . sleep ( 3 )
itchat . logout ()
Wenn der Wert von loginCallback nicht festgelegt ist, wird das QR-Code-Bild automatisch gelöscht und die Befehlszeilenanzeige gelöscht.
F: Wie kann ich meine WeChat-ID mit diesem Paket in einen Controller verwandeln?
A: Es gibt zwei Möglichkeiten: Senden und Empfangen von Nachrichten Ihres eigenen Benutzernamens; Senden und Empfangen von Nachrichten des Dateiübertragungsassistenten (Filehelper).
F: Warum werden einige Nachrichten nicht erfolgreich gesendet, wenn ich sie sende?
A: Einige Konten sind grundsätzlich nicht in der Lage, Nachrichten an ihre eigenen Konten zu senden. Es wird empfohlen, stattdessen filehelper
zu verwenden.
LittleCoder: Architektur und Wartung von Python2- und Python3-Versionen.
tempdban: Protokoll, Architektur und tägliche Wartung.
Chyroc: Die erste Version der Python3-Architektur fertiggestellt.
youfou/wxpy: Hervorragende API-Verpackung und unterstützende Plug-Ins, WeChat-Roboter/elegante WeChat-API für persönliche Konten
liuwons/wxBot: Ähnlicher Python-basierter WeChat-Roboter
zixia/wechaty: WeChat-Roboter für persönliche Konten NodeJS-Framework/-Bibliothek basierend auf Javascript (ES6)
sjdy521/Mojo-Weixin: In der Perl-Sprache geschriebenes WeChat-Client-Framework, das über Plug-Ins eine auf dem HTTP-Protokoll basierende API-Schnittstelle für den Aufruf anderer Sprachen bereitstellen kann
HanSon/vbot: WeChat-Roboter für persönliche Konten basierend auf PHP7, der durch die Implementierung anonymer Funktionen problemlos verschiedene benutzerdefinierte Funktionen implementieren kann
yaphone/itchat4j: Verwendung von Java zur Erweiterung der persönlichen WeChat-ID-Funktionen
kanjielu/jeeves: WeChat-Roboter, entwickelt mit Springboot
Wenn Sie Fragen oder Anregungen haben, können Sie diese in dieser Ausgabe mit mir besprechen
Oder Sie können auch auf Gitter kommunizieren:
Natürlich können Sie auch an unserer neuen QQ-Gruppendiskussion teilnehmen: 549762872, 205872856