美文网首页
itchat 使用

itchat 使用

作者: best_su | 来源:发表于2019-04-06 19:56 被阅读0次

    1、安装

    1、终端:sudo pip install itchat
    2、如果安装了pycharm 的话在偏好设置里面安装即可
    

    2、登录

    # 支持热登录 函数里面有及好多参数
    1、itchat.auto_login(hotReload=True, loginCallback=lc, exitCallback=ec)
    # 这是 源码里面的登录接口
    #   hotReload=False  热登录
    # loginCallback 登录回调
    # exitCallback 登出回调
    def auto_login(self, hotReload=False, statusStorageDir='itchat.pkl',
                enableCmdQR=False, picDir=None, qrCallback=None,
                loginCallback=None, exitCallback=None):
            pass
    
    

    这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码,如果加上hotReload==True,那么就会保留登录的状态,至少在后面的几次登录过程中不会再次扫描二维码,该参数生成一个静态文件itchat.pkl用于存储登录状态

    3、登出

    itchat.logout()    #强制退出登录
    

    4、消息回复

    send(msg="Text Message", toUserName=None)
    参数:
    
    msg : 文本消息内容
    @fil@path_to_file : 发送文件
    @img@path_to_img : 发送图片
    @vid@path_to_video : 发送视频
    toUserName : 发送对象, 如果留空, 将发送给自己.
    返回值
    True or False
    
    代码展示: 目的是看下他们的格式
    mport itchat
    itchat.auto_login()
    itchat.send("Hello World!")
    ithcat.send("@fil@%s" % '/Users/locolName/Desktop/.text')
    ithcat.send("@img@%s" % '/Users/locolName/Desktop/test.png')
    ithcat.send("@vid@%s" % '/Users/locolName/Desktop/test.mkv')
    
    

    就以 发送文件:@fil@path_to_file , 解释一下他的格式:
    @fill:是规定拼接的,如果发送文件就必须用这个
    @path_to_file: 这个就是该文件的绝对路径。
    因此:写法为:
    ithcat.send("@fil@%s" % '/Users/locolName/Desktop/test.text', toUserName="你想发给谁这里就写谁")

    1、send_msg的使用
    send_msg(msg='Text Message', toUserName=None)
    msg是要发送的文本
    toUserName是发送对象, 如果留空, 将发送给自己
    返回值为True或者False
    示例代码:
    itchat.send_msg("hello world.")
    
    2、send_file的使用
    send_file(fileDir, toUserName=None) 
    fileDir是文件路径, 当文件不存在时, 将打印无此文件的提醒
    返回值为True或者False
    示例代码:
    itchat.send_file("/Users/locolName/Desktop/test.txt")
    
    3、send_image的使用
    send_image(fileDir, toUserName=None) 
    fileDir是文件路径, 当文件不存在时, 将打印无此文件的提醒
    返回值为True或者False
    示例代码:
    itchat.send_video("/Users/locolName/Desktop/test.txt")
    

    5、注册方法

    1、不带具体对象注册, 将注册为普通消息的回复方法.
    import itchat
    from itchat.content import *
    #这里的TEXT表示如果有人发送文本消息,那么就会调用下面的方法
    @itchat.msg_register(TEXT) 
    def simple_reply(msg):
    #   打印收到消息的内容,你也可打印msg,看下里面的字段选取自己想要的
        print("收到消息:", msg.text)
        #这个是向发送者发送收到的消息
        itchat.send_msg('收到内容为%s'%msg['Text'], toUserName=msg['FromUserName'])
    #返回的给对方的消息,msg["Text"]表示消息的内容
        return "reveived: %s" % msg["Text"]    
    
    2、带对象参数注册, 对应消息对象将调用该方法
        isFriendChat表示好友之间
        isGroupChat表示群聊
        isMapChat表示公众号
    
    #示例代码:
    import itchat
    from itchat.content import *
    
    @itchat.msg_register(TEXT, isFriendChat=True, isGroupChat=True,isMpChat=True)
    def text_reply(msg):
        print(msg.type)
        msg.user.send("%s : %s" % (msg.type, msg.text))
    

    消息类型
    向注册方法传入的 msg 包含微信返回的字典的所有内容.itchat 增加 Text, Type(也就是参数) 键值, 方便操作.
    itcaht.content中包含所有的消息类型参数, 如下表

    序号 参数 类型 Text 键值
    1 TEXT 文本 文本内容(文字消息)
    2 MAP 地图 位置文本(位置分享)
    3 CARD 名片 推荐人字典(推荐人的名片)
    4 SHARING 分享 分享名称(分享的音乐或者文章等)
    5 PICTURE 下载方法 图片/表情
    6 RECORDING 语音 下载方法
    7 ATTACHMENT 附件 下载方法
    8 VIDEO 小视频 下载方法
    9 FRIENDS 好友邀请 添加好友所需参数
    10 SYSTEM 系统消息 更新内容的用户或群聊的UserName组成的列表
    11 NOTE 通知 通知文本(消息撤回等)

    6、附件的下载与发送

    itchat 的附件下载方法存储在 msg 的 Text 键中. 
    发送的文件名(图片给出的默认文件名), 都存储在 msg 的 FileName 键中. 
    下载方法, 接受一个可用的位置参数(包括文件名), 并将文件响应的存储. 
    注意:下载的文件存储在指定的文件中,直接将路径与FileName连接即可.
    如: msg["Text"]('/Users/locolName/Desktop/wx_'+msg['FileName'])
    
    @itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])
    def download_files(msg):
        #msg.download(msg['FileName'])   #下载文件(两种函数实现相同)
        #下载文件 (默认保存在当前文件夹下,可以修改路径)
        # msg['Text']('/Users/local/Desktop/tempFile/wx_' + msg['FileName'])    
        msg['Text'](msg['FileName'])      
        #将下载的文件发送给发送者 @img -> 图片, @fil -> 文件
        itchat.send('@%s@%s' % ('img' if msg['Type'] == 'Picture' else 'fil', msg["FileName"]), msg["FromUserName"])
    

    7、群消息

    增加了三个键值,如下:
    isAt : 判断是否 @ 本号
    ActualNickName : 实际 NickName(昵称)
    Content : 实际 Content
    
    
    import itcaht
    from itchat.content import TEXT
    
    @itchat.msg_register(TEXT, isGroupChat=True)
    def text_reply(msg):
        #判断是否有人@自己
        if(msg.isAt):      
        #如果有人@自己,就发一个消息告诉对方我已经收到了信息
        itchat.send_msg("已收到来自{0}的消息,内容为{1}".format(msg['ActualNickName'], msg['Text']),toUserName=msg['FromUserName'])
    

    相关文章

      网友评论

          本文标题:itchat 使用

          本文链接:https://www.haomeiwen.com/subject/jcsriqtx.html