Version anglaise
itchat est une interface de compte personnel WeChat open source. Il n'a jamais été aussi simple d'appeler WeChat en utilisant Python.
Avec moins de trente lignes de code, vous pouvez compléter un bot WeChat capable de gérer toutes les informations.
Bien sûr, l’utilisation de cette API est bien plus qu’un simple robot, et il y a d’autres fonctions qui attendent que vous les découvriez, comme celles-ci.
Cette interface partage une méthode de fonctionnement similaire avec l'interface de compte public itchatmp, et vous pouvez apprendre à maîtriser deux outils à la fois.
De nos jours, WeChat est devenu une partie importante des interactions sociales personnelles. J'espère que ce projet pourra vous aider à développer votre compte WeChat personnel et à vous faciliter la vie.
Vous pouvez installer itchat avec cette commande :
pip install itchat
Avec itchat, si vous souhaitez envoyer un message à l'assistant de transfert de fichiers, faites simplement ceci :
import itchat
itchat . auto_login ()
itchat . send ( 'Hello, filehelper' , toUserName = 'filehelper' )
Si vous souhaitez répondre à un SMS qui vous a été envoyé, procédez comme suit :
import itchat
@ itchat . msg_register ( itchat . content . TEXT )
def text_reply ( msg ):
return msg . text
itchat . auto_login ()
itchat . run ()
Certaines applications avancées peuvent être vues dans le code source et les applications avancées du robot open source ci-dessous, ou vous pouvez également lire la documentation.
Il s'agit d'un petit robot open source basé sur ce projet. Il vaut mieux en entendre parler que le voir. Si vous êtes intéressé, vous pouvez l'essayer.
Parce que le nombre d'amis augmente trop vite, la démonstration de la fonction de vérification automatique des amis est temporairement fermée.
En imprimant l'utilisateur d'itchat et les paramètres du message d'inscription, vous constaterez que ces valeurs sont toutes des dictionnaires.
Mais en fait, itchat a soigneusement construit les messages, les utilisateurs, les discussions de groupe et les comptes publics correspondants.
Toutes ses valeurs clés sont accessibles de cette manière :
@ itchat . msg_register ( TEXT )
def _ ( msg ):
# equals to print(msg['FromUserName'])
print ( msg . fromUserName )
Le nom de l'attribut est la première lettre minuscule de la valeur clé.
author = itchat . search_friends ( nickName = 'LittleCoder' )[ 0 ]
author . send ( 'greeting, littlecoder!' )
Grâce au code suivant, WeChat peut déjà obtenir et répondre à diverses informations quotidiennes.
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 )
Vous pouvez utiliser la ligne de commande pour afficher le code QR lors de la connexion avec la commande suivante :
itchat . auto_login ( enableCmdQR = True )
Certains systèmes peuvent avoir des largeurs de caractères différentes, qui peuvent être ajustées en attribuant activateCmdQR à un multiple spécifique :
# 如部分的linux系统,块字符的宽度为一个字符(正常应为两字符),故赋值为2
itchat . auto_login ( enableCmdQR = 2 )
La couleur d'arrière-plan par défaut de la console est sombre (noir). Si la couleur d'arrière-plan est claire (blanc), activateCmdQR peut se voir attribuer une valeur négative :
itchat . auto_login ( enableCmdQR = - 1 )
Connectez-vous via la commande suivante Même si le programme est fermé, vous pouvez le rouvrir dans un certain laps de temps sans réanalyser le code.
itchat . auto_login ( hotReload = True )
Utilisez la méthode search_friends
pour rechercher des utilisateurs. Il existe quatre méthodes de recherche :
UserName
spécifiquename
Trois ou quatre d’entre eux peuvent être utilisés ensemble. Voici un exemple de programme :
# 获取自己的用户信息,返回自己的属性字典
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' )
L'acquisition et la recherche de comptes officiels et de discussions de groupe sont décrites plus en détail dans la documentation.
La méthode de téléchargement des pièces jointes d'Itchat est stockée dans la clé Texte de msg.
Le nom du fichier envoyé (le nom de fichier par défaut donné par l'image) est stocké dans la clé FileName de msg.
La méthode de téléchargement accepte un argument de position disponible (y compris le nom du fichier) et stocke le fichier en conséquence.
@ 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' ]
Si vous n'avez pas besoin de le télécharger localement et que vous souhaitez simplement lire la chaîne binaire pour un traitement ultérieur, vous ne pouvez transmettre aucun paramètre. La méthode renverra la chaîne binaire de l'image.
@ itchat . msg_register ([ PICTURE , RECORDING , ATTACHMENT , VIDEO ])
def download_files ( msg ):
with open ( msg . fileName , 'wb' ) as f :
f . write ( msg . download ())
Utilisez la commande suivante pour effectuer plusieurs opérations d'ouverture :
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 ()
La méthode une fois la connexion terminée doit être attribuée dans loginCallback
.
La méthode après la sortie doit être attribuée dans exitCallback
.
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 ()
Si la valeur de loginCallback n'est pas définie, l'image du code QR sera automatiquement supprimée et l'affichage de la ligne de commande sera effacé.
Q : Comment puis-je transformer mon identifiant WeChat en contrôleur via ce package ?
R : Il existe deux manières : envoyer et recevoir des messages de votre propre nom d'utilisateur ; envoyer et recevoir des messages de l'assistant de transfert de fichiers (filehelper) ;
Q : Pourquoi certains messages ne parviennent-ils pas à être envoyés lorsque je les envoie ?
R : Certains comptes ne peuvent pas envoyer de messages à leurs propres comptes. Il est recommandé d'utiliser filehelper
à la place.
LittleCoder : Architecture et maintenance des versions Python2 et Python3.
tempdban : protocole, architecture et maintenance quotidienne.
Chyroc : Terminer la première version de l'architecture Python3.
youfou/wxpy : excellent packaging d'API et plug-ins de prise en charge, robot WeChat/API de compte personnel WeChat élégant
liuwons/wxBot : robot WeChat similaire basé sur Python
zixia/wechaty : robot de compte personnel WeChat, framework/bibliothèque NodeJS basé sur Javascript (ES6)
sjdy521/Mojo-Weixin : framework client WeChat écrit en langage Perl, qui peut fournir une interface API basée sur le protocole HTTP via des plug-ins pour que d'autres langages puissent appeler
HanSon/vbot : robot de compte personnel WeChat basé sur PHP7, qui peut facilement implémenter diverses fonctions personnalisées en implémentant des fonctions anonymes
yaphone/itchat4j : Utiliser Java pour étendre les capacités d'identification personnelle de WeChat
kanjielu/jeeves : robot WeChat développé avec Springboot
Si vous avez des questions ou des suggestions, vous pouvez en discuter avec moi dans ce numéro
Ou vous pouvez aussi communiquer sur gitter :
Bien sûr, vous pouvez également rejoindre notre nouvelle discussion de groupe QQ : 549762872, 205872856