itchat中文文档

def login(self, enableCmdQR=False, picDir=None, qrCallback=None,
        loginCallback=None, exitCallback=None):
    ''' 像web版微信一样登陆
        用于登陆
            - 将下载并打开一个二维码
            - 然后记录扫码状态,程序暂停等待你微信确认登陆
            - 最终微信将登陆成功并展示你的昵称
        可选参数
            - enableCmdQR: 在命令行展示二维码,默认不开启
                - 整数可以适应奇怪的字符长度
            - picDir: 存储二维码的路径,默认代码同级目录
            - qrCallback: 二维码回调,可接受参数 uuid, status, qrcode
            - loginCallback: 登陆回调,登陆成功之后的回调
                - 如果没有设置,将清除屏幕并删除二维码
            - exitCallback: 退出后的回调
                - 它包含退出调用
        示例
            #python代码

                import itchat
                itchat.login()

        它被定义在 components/login.py 
        当然,登陆的每一步都可以外部调用
            - 你可以扫描源代码看看
            - 根据你自己的需要修改
    '''
    raise NotImplementedError()
def get_QRuuid(self):
    ''' 获取 uuid 供二维码使用
        uuid 是二维码的象征符号
            - 为了登陆,你需要首先获得 uuid
            - 下载二维码时,你应该将 uuid 传给它
            - 检查登陆状态时, uuid 也是必须的参数
        如果 uuid 超时,只能重新获取
        它被定义在 components/login.py
    '''
    raise NotImplementedError()
def get_QR(self, uuid=None, enableCmdQR=False, picDir=None, qrCallback=None):
    ''' 下载并展示二维码
        可选参数
            - uuid: 如果没有设置 uuid,将使用你最新获取的 uuid
            - enableCmdQR: 是否在命令行展示二维码
            - picDir: 二维码保存路径
            - qrCallback: 二维码回调,可接受参数 uuid, status, qrcode
        它被定义在 components/login.py
    '''
    raise NotImplementedError()
def check_login(self, uuid=None):
    ''' 检查登陆状态
        可选参数:
            - uuid: 如果没有设置 uuid,将使用你最新获取的 uuid
        返回值:
            - 返回类型:string
            - 返回值的含义
                - 200: 登陆成功
                - 201: 等待登陆确认
                - 408: uuid 超时
                - 0  : unknown error
        作用:
            - 设置 syncUrl and fileUrl 
            - 设置 BaseRequest 
        阻塞直到以上参数被设置完成
        它被定义在 components/login.py
    '''
    raise NotImplementedError()
def web_init(self):
    ''' 获取初始化所需信息
        作用:
            - 设置自己的账户信息
            - 设置 inviteStartCount
            - 设置 syncKey
            - 获取部分联系人
        它被定义在 components/login.py
    '''
    raise NotImplementedError()
def show_mobile_login(self):
    ''' 展示网页版微信登陆标志
        手机微信上将展示网页版微信已登录标志
        即使不调用此方法,一段时间后也会加上网页版微信登陆标志
        它被定义在 components/login.py
    '''
    raise NotImplementedError()
def start_receiving(self, finishCallback=None):
    ''' 打开心跳循环线程并接收消息
       可选参数:
            - finishCallback: 退出后的回调
                - 它包含退出回调
        作用:
            - messages: 格式化信息并传递给被注册的 fns
            - contact : 收到信息后群将被跟新
        它被定义在 components/login.py
    '''
    raise NotImplementedError()
def get_msg(self):
    ''' 获取消息
        for fetching
            - 此方法模块有时使用
                - 有新消息待接收时
                - 或者其他任何时间,比如
            - 使用返回的 synccheckkey 更新 synckey
        它被定义在 components/login.py
    '''
    raise NotImplementedError()
def logout(self):
    ''' 退出
        如果程序核心还存活
            此方法将退出微信网页版
        并且程序将准备下一次的登陆
        它被定义在 components/login.py
    '''
    raise NotImplementedError()
def update_chatroom(self, userName, detailedMember=False):
    ''' 更新群
        关于群联系人
            - 群联系人需要更新以获得详细信息
            - 详细信息指 群成员,加密id...
            - 心脏循环自动更新更详细
                - 群成员 uin 也将被覆盖
            - 被调用一次,更新后的信息将被存储
        for options
            - userName: 群成员昵称
            - detailedMember: 是否获取联系人
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def update_friend(self, userName):
    ''' update chatroom
        for friend contact
            - 被调用一次,更新后的信息将被存储
        for options
            - userName: 好友昵称
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def get_contact(self, update=False):
    ''' fetch part of contact
        for part
            - all the massive platforms and friends are fetched
            - 如果 update = True, 则只获取星标群
        for options
            - update: 如果未设置,则返回本地值
        返回值:
            - 群列表 list
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def get_friends(self, update=False):
    ''' 获取好友信息 list
        for options
            - update:  如果未设置,则返回本地值
        for results
            - 返回好友信息 list
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def get_chatrooms(self, update=False, contactOnly=False):
    ''' 获取群列表
        for options
            - update: 如果未设置,则返回本地值
            - contactOnly: 如果设置了,则只返回星级群
        for results
            - 返回群信息 list
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def get_mps(self, update=False):
    ''' 获取公众号列表
        for options
            - update: 如果未设置,则返回本地值
        for results
            - 返回公众号信息 list
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def set_alias(self, userName, alias):
    ''' 为朋友设置别名
        for options
            - userName: 用户昵称
            - alias: 别名
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def set_pinned(self, userName, isPinned=True):
    ''' 锁定好友或群
        for options
            - userName: 用户昵称或群昵称
            - isPinned: 是否锁定
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def add_friend(self, userName, status=2, verifyContent='', autoUpdate=True):
    ''' 添加朋友或接受朋友
        for options
            - userName: 用户昵称
            - status:
                - 添加 status = 2
                - 接受 status = 3
            - ticket: 问候语
            - userInfo: 好友的其他信息(用于添加到本地存储)
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def get_head_img(self, userName=None, chatroomUserName=None, picDir=None):
    ''' 文件存放处
        for options
            - 如果要获取聊天室标题:仅设置聊天室用户名
            - 如果要获取好友标题:仅设置用户名
            - 如果要获取聊天室成员标题:请同时设置
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def create_chatroom(self, memberList, topic=''):
    '''创建群
        for creating
            - 严格限制调用频率
        for options
            - memberList: 群成员列表
            - topic: 新群主题
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def set_chatroom_name(self, chatroomUserName, name):
    ''' 设置群名称
        for setting
            - 它会更新群信息
            - 这意味着详细信息将在心脏循环中返回
        for options
            - chatroomUserName: 群名
            - name: 新的群名称
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def delete_member_from_chatroom(self, chatroomUserName, memberList):
    ''' 从群删除成员
        for deleting
            - 不能删除自己
            - 如果删自己,则什么也不会删除
            - 严格限制频率
        for options
             - chatroomUserName: 群名
             - memberList: 群成员信息列表
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def add_member_into_chatroom(self, chatroomUserName, memberList,
        useInvitation=False):
    ''' 添加群成员
        for adding
            - 您不能将自己或该群已有成员添加到群中
            - 如果是,则不添加任何人
            - 如果成员在添加后超过40个,则必须使用邀请
            - 严格限制频率
        for options
            - chatroomUserName: 群名
            - memberList: 群成员信息列表
            - useInvitation: 如果不需要邀请,请将此设置为使用
        它被定义在 components/contact.py
    '''
    raise NotImplementedError()
def send_raw_msg(self, msgType, content, toUserName):
    ''' 一个方法发送多条消息
        for demo
            .. code:: python

                @itchat.msg_register(itchat.content.CARD)
                def reply(msg):
                    itchat.send_raw_msg(msg['MsgType'], msg['Content'], msg['FromUserName'])

        这里有一些小把戏,你可以自己发现
       	但是记住,他们只是骗局
        它被定义在 components/messages.py
    '''
    raise NotImplementedError()
def send_msg(self, msg='Test Message', toUserName=None):
    ''' 发送纯文本消息
        for options
            - msg: 如果msg中有非 ascii 字符,则应为unicode
            - toUserName: 对方昵称
        它被定义在 components/messages.py
    '''
    raise NotImplementedError()
def upload_file(self, fileDir, isPicture=False, isVideo=False):
    ''' 将文件上传到服务器并获取mediaId
        for options
            - fileDir: 准备发送的文件
            - isPicture: 文件是否为图片
            - isVideo: 文件是否为视频
        for return values
           将返回一个返回值
           如果成功, mediaId 将返回,字段是 r['MediaId']
        它被定义在 components/messages.py
    '''
    raise NotImplementedError()
def send_file(self, fileDir, toUserName=None, mediaId=None):
    ''' 发送文件消息
        for options
            - fileDir: 准备发送的文件
            - mediaId: 文件的mediaId,upload_file方法可返回
                - 如果设置,可避免文件上传两次
            - toUserName: 对方用户昵称
        它被定义在 components/messages.py
    '''
    raise NotImplementedError()
def send_image(self, fileDir, toUserName=None, mediaId=None):
    ''' 发送图片
        for options
            - fileDir: 准备发送的图片文件
                - 如果是一个gif,则命令类似 'xx.gif'
            - mediaId: 文件的mediaId,upload_file方法可返回
                - 如果设置,可避免文件上传两次
            - toUserName: 对方用户昵称
        它被定义在 components/messages.py
    '''
    raise NotImplementedError()
def send_video(self, fileDir=None, toUserName=None, mediaId=None):
    ''' 发送视频消息
        for options
            - fileDir: 准备发送的文件目录(不可有中文),如:'./vedio/text_vedio.mp4' 
                - 如果设置了 mediaId , 则可不用设置 fileDir
            - mediaId: 文件的mediaId,upload_file方法可返回
                - 如果设置,可避免文件上传两次
            - toUserName: 对方用户昵称
       	for return 
       		发送结果,json格式
        for example
        	ret = itchat.send_video('./vedio/text_vedio.mp4', toUserName=msg['FromUserName'])
        	print("返回值:",ret)
        它被定义在 components/messages.py
    '''
    raise NotImplementedError()
def send(self, msg, toUserName=None, mediaId=None):
    ''' 所有发送函数的包装函数
        for options
            - msg: 不同字符串开头的消息,标识不同的消息类型
                - 可选类型: ['@fil@', '@img@', '@msg@', '@vid@']
                - 分别代表文件类型 文件、图像、纯文本、视频
                - 如果他们都不匹配,则以纯文本形式发送
            - toUserName: 好友的用户名
            - mediaId: 如果设置,则不会重复上传
        它被定义在 components/messages.py
    '''
    raise NotImplementedError()
def dump_login_status(self, fileDir=None):
    ''' 将登录状态转储到特定文件
        for option
            - fileDir: 转储登录状态的文件
        它被定义在 components/hotreload.py
    '''
    raise NotImplementedError()
def load_login_status(self, fileDir,
        loginCallback=None, exitCallback=None):
    ''' 从特定文件加载登录状态
        for option
            - fileDir: 用于加载登录状态的文件
             - loginCallback: 登陆回调,登陆成功之后的回调
                - 如果没有设置,将清除屏幕并删除二维码
            - exitCallback: 退出后的回调
                - 它包含退出调用
        它被定义在 components/hotreload.py
    '''
    raise NotImplementedError()
def auto_login(self, hotReload=False, statusStorageDir='itchat.pkl',
        enableCmdQR=False, picDir=None, qrCallback=None,
        loginCallback=None, exitCallback=None):
    ''' 像web版微信一样登陆
        用于登陆
            - 将下载并打开一个二维码
            - 然后记录扫码状态,程序暂停等待你微信确认登陆
            - 最终微信将登陆成功并展示你的昵称
        可选参数
            - hotReload: 是否启动热重载(保存登陆状态,一段时间之内免登陆)
            - statusStorageDir: 用于存储登录状态的目录
            - enableCmdQR: 在命令行展示
                - 整数可以适应奇怪的字符长度
           	- picDir: 存储二维码的路径,默认代码同级目录
            - qrCallback: 二维码回调,可接受参数 uuid, status, qrcode
            - loginCallback: 登陆回调,登陆成功之后的回调
                - 如果没有设置,将清除屏幕并删除二维码
            - exitCallback: 退出后的回调
                - 它包含退出调用
        示例:
            ..code::python

                import itchat
                itchat.auto_login()

        它被定义在 components/register.py
        当然,登录的每一步都可以在外部调用
            - 你可以扫描源代码看看
            - 根据你自己的需要修改
    '''
    raise NotImplementedError()
def configured_reply(self):
    ''' 如果定义了消息的方法,则确定消息的类型并答复
        然而,我使用一种奇怪的方法来确定msg是否来自大型平台
        我还没有找到更好的解决办法
        我担心的主要问题是新朋友在电话中的不匹配
        如果你有什么好主意,请提交一个 issue. 我将不胜感激。 
    '''
    raise NotImplementedError()
def msg_register(self, msgType,
        isFriendChat=False, isGroupChat=False, isMpChat=False):
    ''' 一个装饰构造器
        根据给定的信息返回特定的装饰器
        for example:
        	#可以通过print(msg)方法查看消息里的所有数据,然后进行提取,
        	@itchat.msg_register(itchat.content.TEXT) #只对个人消息有效
			def print_content(msg):
			    print(msg['Text'])
    '''
    raise NotImplementedError()
def run(self, debug=True):
    ''' 开始自动回复(程序挂起,保持运行)
        for option
            - debug: 如果 True,调试信息将显示在屏幕上
        它被定义在 components/register.py
    '''
    raise NotImplementedError()
def search_friends(self, name=None, userName=None, remarkName=None, nickName=None, wechatAccount=None):
    return self.storageClass.search_friends(name, userName, remarkName, nickName, wechatAccount)
    ''' 搜索用户信息
        for option
            - name: 群聊全名
            - userName: 好友名称含有的字符
            - remarkName:备注名
            - nickName:昵称
            - wechatAccount:微信号
            - 参数可以一同使用
        for example
        	# 获取自己的用户信息,返回自己的属性字典
			itchat.search_friends()
			# 获取特定UserName的用户信息
			itchat.search_friends(userName='@abcdefg1234567')
        它被定义在 components/register.py
    '''
def search_chatrooms(self, name=None, userName=None):
    return self.storageClass.search_chatrooms(name, userName)
    ''' 搜索群聊
        for option
            - name: 群聊全名
            - userName: 群聊名称含有的字符
            - 两个参数同时使用,则只有 userName 参数生效
        for example
        	# 获取特定名称的群聊,返回值为一个字典
			itchat.search_chatrooms(userName='@abcd1234')
			# 获取名字中含有特定字符的群聊,返回类型 list
			itchat.search_chatrooms(name='xyz')
        它被定义在 components/register.py
    '''
def search_mps(self, name=None, userName=None):
    return self.storageClass.search_mps(name, userName)
    ''' 搜索公众号
        for option
            - name: 公众号全名
            - userName: 公众号名称含有的字符
            - 两个参数同时使用,则只有 userName 生效
        for example
        	# 获取特定UserName的公众号,返回值为一个字典
			itchat.search_mps(userName='@abcd1234')
			# 获取名字中含有特定字符的公众号,返回类型 list
			itchat.search_mps(name='xyz')
        它被定义在 components/register.py
    '''

感谢原作者的翻译,转载一下方便查看。原地址

posted @ 2024-04-19 09:33  DevLogic  阅读(153)  评论(0编辑  收藏  举报