ฉบับภาษาอังกฤษ
itchat เป็นอินเทอร์เฟซบัญชีส่วนตัว WeChat แบบโอเพ่นซอร์ส การโทร WeChat โดยใช้ python ง่ายกว่าที่เคย
ด้วยโค้ดที่น้อยกว่าสามสิบบรรทัด คุณก็สามารถกรอกบอท 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 )
บางระบบอาจมีความกว้างของอักขระที่แตกต่างกัน ซึ่งสามารถปรับได้โดยการกำหนด EnableCmdQR ให้กับพหุคูณเฉพาะ:
# 如部分的linux系统,块字符的宽度为一个字符(正常应为两字符),故赋值为2
itchat . auto_login ( enableCmdQR = 2 )
สีพื้นหลังของคอนโซลเริ่มต้นคือสีเข้ม (สีดำ) หากสีพื้นหลังเป็นสีอ่อน (สีขาว) สามารถกำหนดค่า EnableCmdQR ให้เป็นค่าลบได้:
itchat . auto_login ( enableCmdQR = - 1 )
เข้าสู่ระบบด้วยคำสั่งต่อไปนี้ แม้ว่าโปรแกรมจะปิดไปแล้ว แต่คุณก็สามารถเปิดใหม่ได้ภายในระยะเวลาหนึ่งโดยไม่ต้องสแกนโค้ดอีกครั้ง
itchat . auto_login ( hotReload = True )
ใช้เมธอด search_friends
เพื่อค้นหาผู้ใช้ มีสี่วิธี:
UserName
เฉพาะname
สามารถใช้สามหรือสี่รายการร่วมกันได้ ต่อไปนี้เป็นโปรแกรมตัวอย่าง:
# 获取自己的用户信息,返回自己的属性字典
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
ชื่อไฟล์ของไฟล์ที่ส่ง (ชื่อไฟล์เริ่มต้นที่กำหนดโดยรูปภาพ) จะถูกจัดเก็บไว้ในคีย์ FileName ของ msg
วิธีการดาวน์โหลดยอมรับอาร์กิวเมนต์ตำแหน่งที่มีอยู่ (รวมถึงชื่อไฟล์) และจัดเก็บไฟล์ตามนั้น
@ 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
จำเป็นต้องกำหนดวิธีการหลังจาก exit ใน 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 จะถูกลบโดยอัตโนมัติและการแสดงบรรทัดคำสั่งจะถูกล้าง
ถาม: ฉันจะเปลี่ยน WeChat ID ของฉันให้เป็นคอนโทรลเลอร์ผ่านแพ็คเกจนี้ได้อย่างไร
ตอบ: มีสองวิธี: การส่งและรับข้อความชื่อผู้ใช้ของคุณเอง การส่งและรับข้อความของผู้ช่วยถ่ายโอนไฟล์ (filehelper)
ถาม: เหตุใดข้อความบางข้อความจึงส่งไม่สำเร็จเมื่อฉันส่งไป
ตอบ: บางบัญชีไม่สามารถส่งข้อความไปยังบัญชีของตนเองได้ ขอแนะนำให้ใช้ filehelper
แทน
LittleCoder: การสร้างสถาปัตยกรรมและการบำรุงรักษาเวอร์ชัน Python2 และ Python3
tempdban: โปรโตคอล สถาปัตยกรรม และการบำรุงรักษารายวัน
Chyroc: สร้างสถาปัตยกรรม Python3 เวอร์ชันแรกเสร็จสมบูรณ์แล้ว
youfou/wxpy: แพ็คเกจ API ที่ยอดเยี่ยมและรองรับปลั๊กอิน, หุ่นยนต์ WeChat/API บัญชีส่วนตัว WeChat ที่หรูหรา
liuwons/wxBot: หุ่นยนต์ WeChat ที่ใช้ Python คล้ายกัน
zixia/wechaty: หุ่นยนต์บัญชีส่วนตัว WeChat NodeJS เฟรมเวิร์ก/ไลบรารีที่ใช้ Javascript (ES6)
sjdy521/Mojo-Weixin: เฟรมเวิร์กไคลเอนต์ WeChat ที่เขียนด้วยภาษา Perl ซึ่งสามารถจัดเตรียมอินเทอร์เฟซ API ตามโปรโตคอล HTTP ผ่านปลั๊กอินสำหรับภาษาอื่น ๆ ที่จะโทร
HanSon/vbot: โรบ็อตบัญชีส่วนตัว WeChat ที่ใช้ PHP7 ซึ่งสามารถใช้ฟังก์ชันที่กำหนดเองต่างๆ ได้อย่างง่ายดายโดยการใช้ฟังก์ชันที่ไม่ระบุตัวตน
yaphone/itchat4j: การใช้ Java เพื่อขยายความสามารถ WeChat ID ส่วนบุคคล
kanjielu/jeeves: หุ่นยนต์ WeChat พัฒนาโดยใช้ springboot
หากคุณมีคำถามหรือข้อเสนอแนะ คุณสามารถพูดคุยกับฉันได้ในฉบับนี้
หรือคุณสามารถสื่อสารบน gitter:
แน่นอน คุณยังสามารถเข้าร่วมการสนทนากลุ่ม QQ ใหม่ของเรา: 549762872, 205872856