النسخة الانجليزية
itchat عبارة عن واجهة حساب شخصي مفتوحة المصدر لـ WeChat، ولم يكن الاتصال بـ WeChat باستخدام لغة python أسهل من أي وقت مضى.
باستخدام أقل من ثلاثين سطرًا من التعليمات البرمجية، يمكنك إكمال روبوت WeChat الذي يمكنه التعامل مع جميع المعلومات.
وبطبيعة الحال، فإن استخدام واجهة برمجة التطبيقات هذه هو أكثر بكثير من مجرد روبوت، وهناك المزيد من الوظائف في انتظارك لاكتشافها، مثل هذه.
تشترك هذه الواجهة في طريقة تشغيل مماثلة مع واجهة الحساب العام 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 )
يمكنك استخدام سطر الأوامر لعرض رمز الاستجابة السريعة عند تسجيل الدخول باستخدام الأمر التالي:
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 في مفتاح النص الخاص بالرسالة.
يتم تخزين اسم الملف المرسل (اسم الملف الافتراضي الذي توفره الصورة) في مفتاح 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 ()
إذا لم يتم تعيين قيمة رد الاتصال، فسيتم حذف صورة رمز الاستجابة السريعة تلقائيًا وسيتم مسح شاشة سطر الأوامر.
س: كيف يمكنني تحويل معرف WeChat الخاص بي إلى وحدة تحكم من خلال هذه الحزمة؟
ج: هناك طريقتان: إرسال واستقبال الرسائل الخاصة باسم المستخدم الخاص بك؛ إرسال واستقبال رسائل مساعد نقل الملفات (filehelper)؛
س: لماذا لا يتم إرسال بعض الرسائل بنجاح عندما أقوم بإرسالها؟
ج: بعض الحسابات غير قادرة بطبيعتها على إرسال رسائل إلى حساباتها الخاصة، ومن المستحسن استخدام filehelper
بدلاً من ذلك.
LittleCoder: تصميم وصيانة إصدارات Python2 وPython3.
tempdban: البروتوكول والهندسة المعمارية والصيانة اليومية
Chyroc: أكملت الإصدار الأول من بنية Python3.
youfou/wxpy: تغليف ممتاز لواجهة برمجة التطبيقات ودعم المكونات الإضافية، روبوت WeChat/واجهة برمجة تطبيقات حساب WeChat الشخصي الأنيقة
liuwons/wxBot: روبوت WeChat مماثل يعتمد على لغة بايثون
Zixia/wechaty: إطار عمل/مكتبة NodeJS لروبوت الحساب الشخصي WeChat استنادًا إلى Javascript (ES6)
sjdy521/Mojo-Weixin: إطار عمل عميل WeChat مكتوب بلغة Perl، والذي يمكن أن يوفر واجهة API تعتمد على بروتوكول HTTP من خلال المكونات الإضافية للاتصال باللغات الأخرى
HanSon/vbot: روبوت حساب شخصي WeChat يعتمد على PHP7، والذي يمكنه بسهولة تنفيذ العديد من الوظائف المخصصة من خلال تنفيذ وظائف مجهولة.
yaphone/itchat4j: استخدام Java لتوسيع إمكانيات معرف WeChat الشخصي
kanjielu/jeeves: تم تطوير روبوت WeChat باستخدام Springboot
إذا كان لديك أي أسئلة أو اقتراحات، يمكنك مناقشتها معي في هذا العدد
أو يمكنك أيضًا التواصل على gitter:
بالطبع، يمكنك أيضًا الانضمام إلى مناقشة مجموعة QQ الجديدة لدينا: 549762872، 205872856