영어 버전
itchat은 오픈 소스 WeChat 개인 계정 인터페이스입니다. Python을 사용하여 WeChat을 호출하는 것이 그 어느 때보다 쉬워졌습니다.
30줄 미만의 코드로 모든 정보를 처리할 수 있는 WeChat 봇을 완성할 수 있습니다.
물론, 이 API의 사용은 단순한 로봇 그 이상이며, 다음과 같은 더 많은 기능이 여러분을 기다리고 있습니다.
이 인터페이스는 공개 계정 인터페이스인 itchatmp와 유사한 작동 방법을 공유하며, 두 가지 도구를 동시에 익히는 방법을 배울 수 있습니다.
요즘 WeChat은 개인적인 사회적 상호 작용의 큰 부분이 되었습니다. 이 프로젝트가 귀하의 개인 WeChat 계정을 확장하고 생활을 편리하게 만드는 데 도움이 되기를 바랍니다.
다음 명령으로 itchat을 설치할 수 있습니다.
pip install itchat
itchat을 사용하여 파일 전송 도우미에게 메시지를 보내려면 다음을 수행하세요.
import itchat
itchat . auto_login ()
itchat . send ( 'Hello, filehelper' , toUserName = 'filehelper' )
자신에게 보낸 문자 메시지에 답장하려면 다음을 수행하세요.
import itchat
@ itchat . msg_register ( itchat . content . TEXT )
def text_reply ( msg ):
return msg . text
itchat . auto_login ()
itchat . run ()
일부 고급 애플리케이션은 아래 오픈 소스 로봇의 소스 코드 및 고급 애플리케이션에서 볼 수 있거나 설명서를 읽을 수도 있습니다.
이 프로젝트를 기반으로 한 오픈 소스 소형 로봇입니다. 관심이 있으시면 직접 사용해 보시기 바랍니다.
친구 수가 너무 빨리 늘어나서 친구 인증 자동 통과 기능의 시연을 일시적으로 중단합니다.
itchat 사용자와 등록 메시지의 매개변수를 인쇄해 보면 이 값이 모두 사전임을 알 수 있습니다.
그러나 실제로 itchat은 해당 메시지, 사용자, 그룹 채팅 및 공개 계정을 신중하게 구성했습니다.
모든 주요 값은 다음과 같은 방법으로 액세스할 수 있습니다.
@ itchat . msg_register ( TEXT )
def _ ( msg ):
# equals to print(msg['FromUserName'])
print ( msg . fromUserName )
속성 이름은 키 값의 첫 번째 소문자 문자입니다.
author = itchat . search_friends ( nickName = 'LittleCoder' )[ 0 ]
author . send ( 'greeting, littlecoder!' )
다음 코드를 통해 WeChat은 이미 다양한 일상 정보를 얻고 응답할 수 있습니다.
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 )
다음 명령으로 로그인할 때 명령줄을 사용하여 QR 코드를 표시할 수 있습니다.
itchat . auto_login ( enableCmdQR = True )
일부 시스템에서는 문자 너비가 다를 수 있으며, 이는 특정 배수에 활성화CmdQR을 할당하여 조정할 수 있습니다.
# 如部分的linux系统,块字符的宽度为一个字符(正常应为两字符),故赋值为2
itchat . auto_login ( enableCmdQR = 2 )
기본 콘솔 배경색은 어두움(검은색)입니다. 배경색이 밝은 경우(흰색), 활성화CmdQR에 음수 값을 할당할 수 있습니다.
itchat . auto_login ( enableCmdQR = - 1 )
다음 명령어를 통해 로그인하시면, 프로그램이 종료되더라도 일정 시간 내에 코드를 다시 스캔하지 않고도 다시 열 수 있습니다.
itchat . auto_login ( hotReload = True )
사용자를 검색하려면 search_friends
메소드를 사용하십시오. 검색 방법에는 4가지가 있습니다.
UserName
에 대한 사용자 정보 가져오기name
키 값과 동일한 사용자를 가져옵니다.그 중 3개 또는 4개를 함께 사용할 수 있습니다. 다음은 샘플 프로그램입니다.
# 获取自己的用户信息,返回自己的属性字典
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' )
공식 계정 및 그룹 채팅 획득 및 검색에 대한 자세한 내용은 문서에 설명되어 있습니다.
Itchat의 첨부파일 다운로드 방법은 msg의 Text 키에 저장됩니다.
전송된 파일의 파일 이름(그림에 제공된 기본 파일 이름)은 msg의 FileName 키에 저장됩니다.
다운로드 메소드는 사용 가능한 위치 인수(파일 이름 포함)를 승인하고 그에 따라 파일을 저장합니다.
@ 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' ]
로컬로 다운로드할 필요가 없고 추가 처리를 위해 바이너리 문자열을 읽으려는 경우에는 매개 변수를 전달할 수 없습니다. 이 메서드는 이미지의 바이너리 문자열을 반환합니다.
@ itchat . msg_register ([ PICTURE , RECORDING , ATTACHMENT , VIDEO ])
def download_files ( msg ):
with open ( msg . fileName , 'wb' ) as f :
f . write ( msg . download ())
여러 열기 작업을 완료하려면 다음 명령을 사용하십시오.
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 ()
로그인이 완료된 후의 메소드는 loginCallback
에 지정해야 합니다.
종료 이후의 메소드는 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 ()
loginCallback 값이 설정되지 않은 경우 QR 코드 이미지가 자동으로 삭제되고 명령줄 표시가 지워집니다.
Q: 이 패키지를 통해 어떻게 WeChat ID를 컨트롤러로 전환할 수 있나요?
A: 두 가지 방법이 있습니다. 자신의 UserName의 메시지를 보내고 받는 것, 파일 전송 도우미(filehelper)의 메시지를 보내고 받는 것입니다.
Q: 일부 메시지를 보낼 때 성공적으로 전송되지 않는 이유는 무엇입니까?
A: 일부 계정은 본질적으로 자신의 계정으로 메시지를 보낼 수 없습니다. 대신 filehelper
사용하는 것이 좋습니다.
LittleCoder: Python2 및 Python3 버전을 설계하고 유지 관리합니다.
tempdban: 프로토콜, 아키텍처 및 일일 유지 관리.
Chyroc: Python3 아키텍처의 첫 번째 버전을 완성했습니다.
youfou/wxpy: 뛰어난 API 패키징 및 지원 플러그인, WeChat 로봇/우아한 WeChat 개인 계정 API
liuwons/wxBot: 유사한 Python 기반 WeChat 로봇
zixia/wechaty: Javascript(ES6) 기반 WeChat 개인 계정 로봇 NodeJS 프레임워크/라이브러리
sjdy521/Mojo-Weixin: Perl 언어로 작성된 WeChat 클라이언트 프레임워크로, 다른 언어 호출용 플러그인을 통해 HTTP 프로토콜 기반 API 인터페이스를 제공할 수 있습니다.
HanSon/vbot: 익명 기능 구현으로 다양한 맞춤형 기능을 쉽게 구현할 수 있는 PHP7 기반 위챗 개인 계정 로봇
yaphone/itchat4j: Java를 사용하여 개인 WeChat ID 기능 확장
kanjielu/jeeves: springboot를 사용하여 개발된 WeChat 로봇
질문이나 제안 사항이 있으시면 이번 호에서 저와 논의하실 수 있습니다.
또는 Gitter로 통신할 수도 있습니다.
물론, 새로운 QQ 그룹 토론에 참여할 수도 있습니다: 549762872, 205872856